M1 Macの設定

Apple Silicon の MacBook Pro の環境構築をしようとしたら,微妙にハマる点があったので作業メモ。

Homebrew

Homebrewのarm版バイナリが整備されるまでは,arm版とi86版の併用が必要。

Ressさんのサイトを参考に,以下のように設定した。

ターミナル

「ターミナルの情報」を開いて,「Rosettaを使用して開く」を有効にする。

homebrewのインストール

x86_64版とarm版の両方をインストールする。

  1. x86_64版のインストール
  2. arm版のインストール。こちらは/opt/homebrew以下にインストール
$ sudo mkdir /opt/homebrew
$ sudo chown $USER /opt/homebrew
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /opt/homebrew

パス設定

  1. .zshrcに以下を追加。デフォルトではarm版バイナリを探すようにPATH設定をする。
setopt no_global_rcs   # ignore /etc/z*
typeset -U path PATH
path=(
    /opt/homebrew/bin(N-/)
    /usr/local/bin(N-/)
    $path
)

上記1行目を書かないと,/etc/z*で設定しているパスが有効になる。コマンドのPATH探索が思い通りの順と異なって困ることがあるので,今回は自分で設定。

  1. brewコマンドのx86_64版とarm版の使い分けのための設定。
if [[ "${(L)$( uname -s )}" == darwin ]] && (( $+commands[arch] )); then
    alias brew="arch -arch x86_64 /usr/local/bin/brew"
    alias x64='exec arch -arch x86_64 "$SHELL"'
    alias arm='exec arch -arch arm64e "$SHELL"'
    switch-arch() {
        if  [[ "$(uname -m)" == arm64 ]]; then
            arch=x86_64
        elif [[ "$(uname -m)" == x86_64 ]]; then
            arch=arm64e
        fi
        exec arch -arch $arch "$SHELL"
    }
fi

setopt equals

実行例

$ arm # ターミナルのarchをarmに
$ x64 # ターミナルのarchをx64に
$ brew update # x64版(Rosetta)
$ =brew update # arm版
$ switch-arch # archの切り替え

Command Line Tools

xcode-select --install 

LaTeX

いつもお世話になっている奥村先生のサイトを見てインストール。

その他

Google Backup and Syncでエラーが出たり,F-secureのライセンス認証状況の表示がおかしかったりしたが,何度か再起動したりしているうちに気づいたら正常動作するようになっていた。