あんたのM1もIntel並みに!
GNUなどのフリーライブラリーを使う場合,どうしても
- Intel X86
- Apple M1
など複数のアーキテクチュアを含むライブラリーを作成せねばならぬことがある. M1-Mac でIntel X86用にビルドするのは結構面倒であるので,ターミナルをRosettaシミュレータで動かしてしまったほうが,余程早い場合が多い.
iTermバージョン
iTermを使うと, arm64, x86_64の切り替えが可能である. 【iTerm】【Profiles】で, 【Edit Profiles】を開き
右図のような感じで設定する.四角枠は,あんたのshellで違う
- 最近のユーザー: ログインシェルが % (ターミナル開くと% と出る連中)
/usr/bin/arch -x86_64 /bin/zsh --login - 旧式のユーザー: ログインシェルが $ (ターミナル開くと $ が出るひと)
/usr/bin/arch -x86_64 /bin/bash --login
こうしておけば,下のやつでX86状態でターミナルを起動できる.
区別をつけたい
なかなか便利なのだが,「ときにこのターミナル, M1チップなのか?Intelなのか?」が分かりにくい.まあわからなくても気にならないという人もいるが,例えば
bash ($が出てくる)の場合: $HOME/.bash_profile に以下のように書く
export PS1="`uname -m`:\W \$ "
zsh(%が出てくる)の場合: $HOME/.zshrc に以下のように書く
PS1="%~ `uname -m`%% "
これで,ターミナルに 「 x86 ~/Desktop $ 」(インテル互換のとき)とか「~/Desktop arm64 %」(M1チップのとき)と出てくるので,違いがわかる.
ま,細かいところはググって好みで調整してください.
OS付属のターミナルでなんとかする
【Finder】【アプリケーション】【ユーティリティー】【ターミナル】【情報を見る】
【Rosettaで開きやがれ】にチェック
ここでターミナル.appを再起動すると, あらあら不思議
$ uname -a Darwin h142.236.248.10.1017428.vlan.kuins.net 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021;
root:xnu-7195.81.3~1/RELEASE_ARM64_T8101 x86_64
x86_64で動く.
ターミナルを複製
うわー面白いわ,と思ってたらうっかりターミナル.app を複製してしまった.すると,なんと
- 上の「ターミナル.app」は起動すると x86_64 になる
- 下の「ターミナル.app」は起動すると arm64 になる
なんか間違いが起こりそうだが,当座便利なので,こうしておこう.←2023年, ついに出来なくなった. さすがにお行儀が悪かったか
なんや最近ではターミナルAPPの名前を変更できるようになって嬉しい: