前提・実現したいこと
arm環境でtmuxを使えるようにしたい。
ターミナルは
iTerm2をarm用でrossetaを経由しないように
通常のターミナルはrossetaを経由するもので切り分けており
arm用のtmuxをinstallためにiTerm2でtmuxのinstallを実施。
発生している問題・エラーメッセージ
問題
HomeBrewでtmuxをinstallするとintel用になってしまう。
tarminal
1brew install tmux
試したこと
arch -arm64 brew install tmux
にしてもintel用がinstallされてしまう。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
zshrc
1export PROMPT="%n@%m(`uname -m`) %1~ %# " 2 3if [ `uname -m` = "arm64" ] ; then 4 5 export PATH=$PATH:/opt/homebrew/opt 6 export PATH=$PATH:/opt/homebrew/bin 7 export PATH=/bin:$PATH 8 9 # >>> conda initialize >>> 10 # !! Contents within this block are managed by 'conda init' !! 11 __conda_setup="$('/Users/440h/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" 12 if [ $? -eq 0 ]; then 13 eval "$__conda_setup" 14 else 15 if [ -f "/Users/440h/miniforge3/etc/profile.d/conda.sh" ] ; then 16 . "/Users/440h/miniforge3/etc/profile.d/conda.sh" 17 else 18 export PATH="/Users/440h/miniforge3/bin:$PATH" 19 fi 20 fi 21 22 unset __conda_setup 23 # <<< conda initialize <<< 24 25else 26 export PATH=$PATH:/urs/local/opt 27 28 29 # >>> conda initialize >>> 30 # !! Contents within this block are managed by 'conda init' !! 31 __conda_setup="$('/usr/local/Caskroom/miniconda/base/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" 32 if [ $? -eq 0 ]; then 33 eval "$__conda_setup" 34 else 35 if [ -f "/usr/local/Caskroom/miniconda/base/etc/profile.d/conda.sh" ] ; then 36 . "/usr/local/Caskroom/miniconda/base/etc/profile.d/conda.sh" 37 else 38 export PATH="/usr/local/Caskroom/miniconda/base/bin:$PATH" 39 fi 40 fi 41 unset __conda_setup 42fi 43 # <<< conda initialize <<<
Intel 用の brew は /usr/local に、arm 用の brew は /opt/homebrew にインストールされるので、ターミナルごとに PATH を切り替えれば良いのでは?
(でも、いまだに intel 版の brew を使う意味あるのかな…?)
現状が
which brew
を実行したら、intel用の「/usr/local」以下のが出てくる状態なら、
arch -arm64 /bin/zsh
を実行してから
which brew
を実行したら、arm用の「/opt/homebrew」以下のが出てくる状態に変わりませんでしょうか?
【追記】
「.zshrc」で「PATH」に「/opt/homebrew/opt」を追加してますが、「/opt/homebrew/bin」も追加しないといけないかも
この質問の内容には関係無いかもしれませんが、「.zshrc」の
export PATH=$PATH:/urs/local/opt
の「urs」は、「usr」の間違いでは?
アドバイスありがとうございます。
zshrcを編集し
下記をTRYしてみました。
which brew
>>. /usr/local/bin/brew
arch -arm64 /bin/zsh
>>. /usr/local/bin/brew
arm版のHomebrewのPathが通っていないという
ことでしょうか?
「/opt/homebrew」以下のどこかに「brew」というファイル名のファイルがないか、探してみてください
たいていは「/opt/homebrew/bin」にあるのですけど
arm用のbrewの置き場所が分かったら、
arch -arm64 /bin/zsh
の後に
echo $PATH
を実行して、arm用のbrewがある場所が「PATH」に含まれてるか、確認してください
含まれてなければ、含まれるように「.zshrc」を編集してください
含まれてても、それよりも前(左)に「/usr/local/bin」があるとダメです
その場合は、「.zshrc」で「PATH」に追加する際に、たとえば下記のように先頭(左)に追加してみてください
export PATH=/opt/homebrew/bin:$PATH
export PATH=/opt/homebrew/opt:$PATH
ご提案の通りに.zshrcを書き換えました。
homebrewはやはりここにありました。
/opt/homebrew/bin
そして下記を実行すると
which brew
>> /opt/homebrew/bin/brew
arm用のhomebrewに変わっています。
※一応local内のhomebrewも削除。
しかしbrew install tmuxでは
intel版がインストールされてしまいます。。
tmuxがインストールされた場所は、「/opt/homebrew」以下でしょうか?
上記がyesの場合、「/opt/homebrew」以下に既にインストールされてるtmux以外のものは、arm用のものでしょうか?
また、tmux以外の何かを同様にインストールしたら、インストールされるのはどちら用でしょうか?
最近installしたtmux, neovimなどがintel側に
インストールされていることを確認しました。
どのタイミングでそうなったかわかりませんが。。。
試行錯誤した結果
intel側の環境/PATHを一度削除してinstallしたら
arm版のtmuxがinstall出来ました。
解決したのなら、自己解決で回答を書いてください
回答1件
あなたの回答
tips
プレビュー