メインコンテンツに移動

Rosettaターミナル

あんたの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】【アプリケーション】【ユーティリティー】【ターミナル】【情報を見る】

y

【Rosettaで開きやがれ】にチェック

r

ここでターミナル.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年, ついに出来なくなった. さすがにお行儀が悪かったか

dup

なんや最近ではターミナルAPPの名前を変更できるようになって嬉しい:

x86