2022-08-09

Intel上のmacOSでarm64のbrew bottleをダウンロードする

Intel macでarm64用のパッケージをビルドするために、arm64版のbrew bottleをダウンロードしたい。 その手順を残しておく。

手順

  1. 別のディレクトリに Homwbrew をインストールする。
    sudo mkdir /opt/brew-aarch64
    sudo chown ${USER}:staff /opt/brew-aarch64
    cd /opt/brew-aarch64
    curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1
    
  2. brewの動作に必要なツールをインストールする。
    PATH=/opt/brew-aarch64/bin:$PATH brew install ruby
    export PATH=/opt/brew-aarch64/bin:$PATH
    export HOMEBREW_PREFIX=/opt/brew-aarch64/
    
  3. brewスクリプトのアーキテクチャを取得する箇所を書き換え、arm64に変更する。Catalinaを使用しているので、強引にBig Surに書き換える。以下に変更箇所を示す。
    diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh
    index cbe08846a..925c39706 100644
    --- a/Library/Homebrew/brew.sh
    +++ b/Library/Homebrew/brew.sh
    @@ -5,7 +5,7 @@
     
     # Doesn't need a default case because we don't support other OSs
     # shellcheck disable=SC2249
    -HOMEBREW_PROCESSOR="$(uname -m)"
    +HOMEBREW_PROCESSOR='arm64'
     HOMEBREW_PHYSICAL_PROCESSOR="${HOMEBREW_PROCESSOR}"
     HOMEBREW_SYSTEM="$(uname -s)"
     case "${HOMEBREW_SYSTEM}" in
    @@ -425,7 +425,7 @@ then
       HOMEBREW_PRODUCT="Homebrew"
       HOMEBREW_SYSTEM="Macintosh"
       [[ "${HOMEBREW_PROCESSOR}" == "x86_64" ]] && HOMEBREW_PROCESSOR="Intel"
    -  HOMEBREW_MACOS_VERSION="$(/usr/bin/sw_vers -productVersion)"
    +  HOMEBREW_MACOS_VERSION="11.0"
       # Don't change this from Mac OS X to match what macOS itself does in Safari on 10.12
       HOMEBREW_OS_USER_AGENT_VERSION="Mac OS X ${HOMEBREW_MACOS_VERSION}"
     
    diff --git a/Library/Homebrew/system_config.rb b/Library/Homebrew/system_config.rb
    index a019aa4de..ab8aa002f 100644
    --- a/Library/Homebrew/system_config.rb
    +++ b/Library/Homebrew/system_config.rb
    @@ -118,7 +118,7 @@ module SystemConfig
     
         sig { returns(String) }
         def kernel
    -      `uname -m`.chomp
    +      "arm64"
         end
     
         sig { returns(String) }
    diff --git a/Library/Homebrew/hardware.rb b/Library/Homebrew/hardware.rb
    index 52bf2e5e8..80ae69329 100644
    --- a/Library/Homebrew/hardware.rb
    +++ b/Library/Homebrew/hardware.rb
    @@ -57,17 +57,7 @@ module Hardware
     
           sig { returns(Symbol) }
           def arch_64_bit
    -        if arm?
    -          :arm64
    -        elsif intel?
    -          :x86_64
    -        elsif ppc64le?
    -          :ppc64le
    -        elsif ppc64?
    -          :ppc64
    -        else
    -          :dunno
    -        end
    +        :arm64
           end
     
           def arch
    
  4. パッケージをダウンロードする。(下記の例では、openblas)
    brew fetch --force-bottle openblas
    brew fetch --force-bottle gfortran
    
  5. 次回から使用する際は、以下のようにbashで設定する。(うっかりbrew installでインストールしないよう、プロンプトも変更しておく。)
    export PATH=/opt/brew-aarch64/bin:$PATH
    export HOMEBREW_PREFIX=/opt/brew-aarch64/
    PS1='[\u@\h \W brew-arm64]\$ '
    

0 件のコメント:

コメントを投稿