はじめに
rbenvで他のバージョンをインストールした時に、はまったので共有しようと思います。
経緯
rubyのバージョンを2.5.3で合わせる必要があり、rbenvでインストールすると下記のエラーが発生しました。
rbenv install 2.5.3
Downloading ruby-2.5.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.bz2
Installing ruby-2.5.3...
WARNING: ruby-2.5.3 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.
ruby-build: using readline from homebrew
BUILD FAILED (macOS 12.5.1 using ruby-build 20220910.1)
なぜ起きたのか?
調査するとどうやら、ruby-buildがビルド時にhomebrewのバージョンを使おうとするため、readlineに問題があるという警告がでて、BUILD FAILEDが発生したようでした。
問題解決
以下のようにrbenv installの前にオプションをつけると私の場合は、無事インストールする事ができました。
RUBY_CFLAGS="-w" rbenv install 2.5.3
RUBY_CFLAGSとは?
デフォルトのCFLAGS(C言語のコンパイラオプション)へ追加オプションを渡すことを可能にしてくれます。
-wとすることで、コンパイラからの警告メッセージを出力しないように設定する事で例外が発生せず、インストールする事が可能になったと思います。
まとめ
無事インストールできましたが、今回はRUBY_CFLAGS="-w"とする事でインストールは完了してますが、ruby-buildがビルド時にhomebrewのバージョンを使おうとするため、readlineに問題がある事への解決には至ってない為、解決できれば共有していこうと思います。
参考記事
Installation issues with Arm Mac (M1 Chip) #1691 - GitHub
cc コンパイラオプション