M1 MacにApple Silicon用のHomebrewをインストールする方法
はじめに
Rubyのバージョン管理ツールであるrbenvを使用している際に、MacBook Pro(M1チップ搭載)で、意図せずにIntel Mac用のHomebrewをインストールして使用していることに気付きました。
この記事では、Homebrew(Intel Mac用)を削除する方法とHomebrew(Apple Silicon用)をインストールする方法について記述しています。
Homebrewとは
macOSなどのパッケージ管理システムです。
Homebrewを使用すると、ターミナルからコマンド一つで様々なソフトウェアやツールをインストールやアップデートすることができます。
現在の情報を把握する
インストールする前に、まずシステムの情報を確認することで、正しいアーキテクチャに対応したパッケージやツールを設定することができます。
Homebrewでインストールしたパッケージのインストール先ディレクトリを確認
Homebrewを使ってインストールされたパッケージのインストール先のディレクトリを確認してください。
brew --prefix
-
/usr/local
が表示されれば、Intel Mac用
を使用してインストールしていることになります。 -
/opt/homebrew
が表示されれば、Apple Silicon用
を使用してインストールしていることになります。
どのディレクトリにあるbrewコマンドが実行されているか確認
現在、どのディレクトリにあるbrewコマンドが実行されているか確認してください。
which brew
-
/usr/local/bin/brew
が表示されれば、Intel Mac用
を使用していることになります。 -
/opt/homebrew/bin/brew
が表示されれば、Apple Silicon用
を使用していることになります。
現在のシステムのアーキテクチャを取得する
下記のどちらかのコマンドを実行して、現在のシステムのアーキテクチャを取得してください。
uname -m
arch
-
x86_64
が表示されれば、Intelプロセッサが搭載されていることになります。 -
arm64
が表示されれば、M1チップ(Apple Silicon用)が搭載されていることになります。
Rosettaの使用を確認
ターミナルの情報を見る
を選択、
Rosettaを使用して開く
のチェック状況を確認してください。
Apple SiliconのMacでは、Intelベースのアプリケーションを実行するためにRosettaを使用します。
よって、ターミナルアプリケーションがRosettaを使用して開く
にチェックが入っている場合、そのターミナルを通じて起動されるすべてのプロセスやアプリケーションはIntel版として実行されます。
そして、ターミナルを通じた操作にはHomebrewのインストールや操作も含まれるため、結果的にIntel用のパス(/usr/local
)にインストールされる可能性が生じてしまいます。
既存のHomebrewの削除する前に
既存のHomebrewの削除する前に、すでにインストールされているパッケージのバックアップをとっていた方が良いです。
Homebrew Bundleの機能を使用して、現在のシステムにインストールされているすべてのパッケージ(グローバルが、~/.Brewfile
に書き出されます。
brew bundle dump --global
後でApple Silicon用のHomebrewのインストールを行なった後に下記を実行することで、同じパッケージを再度インストールすることができます。
brew bundle --global
既存のHomebrew(Intel Mac用)削除する
不安な方はApple Silicon用のHomebrewのインストールしてから削除した方が良いかなと思います。切り替えて使用されている方もおられるようです。
Homebrewが2つある状態になるので、brewを使用してインストールする際には注意してください。
参考にさせていただきました。
export PATH=/usr/local/bin:${PATH}
brew uninstall $(brew list)
削除できたか確認してください。何も表示されなければ、削除できています。
brew list
または下記で既存のHomebrew(Intel Mac用)削除することができます。今回の場合は、Rosettaを使用して開く
にチェックが入ったままの状態で行ってください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
exportコマンド
環境変数を設定し、その後のプロセスにその環境変数を渡すためのコマンドです。
設定した環境変数は、そのシェルセッション内でのみ有効であり、セッションを閉じると消えます。
永続化するには、設定をシェルの設定ファイルに記述する必要があります。
Apple Silicon用のHomebrewのインストール
Rosettaを使用して開く
にチェックがないことを確認してから行ってください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
パスワードを入力後に下記が表示されます。これはインストールが進行する前にインストールされる内容を確認しています。インストールを続行する場合はEnter
キーを押してください。他のキーを押すとインストールが中止されます。
==> Checking for sudo access (which may request your password)...
Password:
==> This script will install:
/opt/homebrew/bin/brew
/opt/homebrew/share/doc/homebrew
/opt/homebrew/share/man/man1/brew.1
/opt/homebrew/share/zsh/site-functions/_brew
/opt/homebrew/etc/bash_completion.d/brew
/opt/homebrew
Press RETURN/ENTER to continue or any other key to abort:
現在のシェルを確認する
シェル(Shell)とは、OSにおいてユーザーとシステムとの間で対話を行うためのインタフェースです。
この後PATH設定を行うのですが、設定前に現在のシェルを確認してください。
echo $SHELL
-
/bin/zsh
が表示されれば、zsh
を使用していることになります。 -
/bin/bash
が表示されれば、bash
を使用しています。
PATHの設定
~/.zshrc
ファイルを開いて編集してください。
nano ~/.zshrc
下記を追記したら、Ctrl + X
を押して保存の確認を行い、
export PATH="/opt/homebrew/bin:$PATH"
Y
を入力選択、
Enter
キーを押してファイルを保存して終了してください。
変更を反映させるために、シェルの再読み込みを行ってください。
source ~/.zshrc
パスが通っているか、Apple Silicon用のHomebrewのインストールができているかパッケージを表示して確認してください。
brew list
ちなみにmysql
がインストールされているか確認したい場合は以下のコマンドです。
brew list| grep mysql
==> Formulae
と表示され、インストールされたFormulaeの一覧が表示されない場合、現時点でFormulaeはインストールされていないことを意味しています。
現在、どのディレクトリにあるbrewコマンドが実行されているか確認してください。
which brew
/opt/homebrew/bin/brew
が表示されれば、Apple Silicon用
を使用しているので問題ないです。
終わりに
何かありましたらお気軽にコメント等いただけると助かります。
ここまでお読みいただきありがとうございます🎉
Discussion
/opt/homebrewが表示されれば、Intel Mac用を使用してインストールいることになります。
/usr/localが表示されれば、Apple Silicon用を使用してインストールいることになります。
これ逆だと思いましたが、あってますか?
コメントいただきありがとうございます!
ご指摘いただいた通り逆に記載してしまっていたので、修正しました。