概要
を見た後に行った回避方法について記載しています。
環境
- macOS Monterey 12.5 / Intel プロセッサ
- rbenv 1.2.0
- zsh 5.8.1 (x86_64-apple-darwin21.3.0)
- binutils 2.37
- インストールしようとした Ruby のバージョン : 2.6.9
個人の経緯
rbenv で Ruby のインストールに失敗して、失敗ログを確認したら以下の記事と同様のエラーログということがわかりました。
rbenv がビルドの際に使う Mac のコマンドを PATH 的に binutils のものを優先してしまうことでエラーが発生するようです。
binutils 自体は使うためアンインストールしたり、PATH から外したりはしたくないです。
次のように rbenv 実行時にのみ PATH を変更する(=/usr/local/opt/binutils/bin
を削除する)ように回避することにしました。
回避方法: rbenv 実行時にのみ PATH を変更する
PATH から sed を使って /usr/local/opt/binutils/bin
を削除し、rbenv を実行しました。
PATH=$(echo $PATH | sed -e 's|/usr/local/opt/binutils/bin:||') rbenv install 2.6.9
これで Ruby をインストールできました。
補足
コマンド前に環境変数の定義をするとその行だけ環境変数が有効になります。
セッション中ずっと無視していいなら普通に export してもいいです。
$ env | grep PATH
PATH=/usr/local/opt/binutils/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
$ PATH=$(echo $PATH | sed -e 's|/usr/local/opt/binutils/bin:||') env | grep PATH
PATH=/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
$ export PATH=$(echo $PATH | sed -e 's|/usr/local/opt/binutils/bin:||')
$ env | grep PATH