homebrew で readline や openssl をアップグレードするたびに rbenv/pyenv の ruby や python が壊れるのをどうにかしたい

投稿者: Anonymous

普段、 homebrew で readline や openssl がダウンロードされている環境に対して、 rbenv や pyenv を用いています。

このような環境下では、 rbenv(-install) や pyenv(-install) は homebrew の readline/openssl を用いてビルドを行っている様子です。

これは、 brew 上のライブラリアップデートに従い、それらライブラリを更新できるのが利点ですが、しかし、 実際に readline や openssl をアップデートすると、これまでにインストールした ruby/python プログラムが、それぞれの共有ライブラリ(.so ファイル)を読み込めずエラーを出力するようになります。

対処方法はわかっていて、 pyenv/rbenv 上で昔の ruby/python を uninstall してから、再度インストールすれば問題ないのですが、 readline ないし openssl が更新されるたびに、これを行うのは、割と手間です。

質問

homebrew を用いている環境下において、 readline や openssl のアップデートの際に、それまでインストールしていた ruby や python のバイナリを、再インストールせずに利用可能にする手法などはありませんでしょうか。

解決

確認する環境がありませんが、以下のような記事を見つけたので最新の ruby-build を使えば rbenv に関しては OpenSSL の依存を解消できるかもしれません。

ruby-build が Homebrew の openssl に依存しなくなった

改めて調べてみると ruby-build が Homebrew の openssl に依存しなくなり、インストールのたびに openssl をコンパイルしているからでした。
(中略)
これまで通り Homebrew の openssl を使うには RUBY_CONFIGURE_OPTS の環境変数にオプションを渡します。

ruby-build の Wiki には macOS 向けの推奨設定 として RUBY_CONFIGURE_OPTS に値を設定する方法が書かれているので、既存の環境でこの値を指定している場合には無効にすればよいのかもしれません。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *