CatHand Blog

アプリ開発やMac弄り

コマンドラインでターミナルのアーキテクチャを変更する

Apple Silicon対応していないコマンドをターミナルから使う時、いちいち「情報を見る」から「Rosettaで起動」をチェックしてターミナルを再起動するのは面倒です。

コマンドを呼び出す際に先頭に arch -x86_64 をつけるとRosettaでコマンドを実行することができます。これを使って arch -x86_64 /bin/zsh のようにしてやれば、Rosettazshを起動できます。以後はRosettazshからコマンドが呼び出されるので、Rosettaでコマンドが実行されることになります。

alias等を使ってこれを簡単に呼び出せるようにしておくと便利です。

~/.zshrc に↓を保存。

alias x86='arch -x86_64 /bin/zsh'
alias arm64='arch -arm64 /bin/zsh'

すると、

% x86

Rosetta でシェルを起動できます。

これはこれでいまどっちのアーキテクチャかわからなくなるので、コマンドプロンプトの前に現在のアーキテクチャが表示されるようにします。

uname -mx86_64 とか arm64 とかが取得できるので、同様に ~/.zshrc に↓を追加します。

export PROMPT="%n@%m(`uname -m`) %1~ %# "