I want to manage to break ruby ​​and python in rbenv / pyenv every time I upgrade readline or openssl with homebrew

Question: Question:

I usually use rbenv and pyenv for the environment where readline and openssl are downloaded by homebrew.

Under such circumstances, rbenv (-install) and pyenv (-install) seem to be building using readline / openssl of homebrew.

This has the advantage that you can update those libraries according to the library update on brew, but when you actually update readline or openssl, the ruby ​​/ python programs you have installed so far will have their own shared libraries ( .so ). The file) cannot be read and an error will be output.

I know what to do, uninstall the old ruby ​​/ python on pyenv / rbenv and then install it again, but it's okay to do this every time readline or openssl is updated. It is troublesome.


Is there a way to make the ruby ​​and python binaries that were previously installed available without reinstalling when updating readline or openssl in an environment using homebrew?

Answer: Answer:

I don't have an environment to check, but I found an article like the following, so if you use the latest ruby-build, you may be able to eliminate the OpenSSL dependency on rbenv.

ruby-build no longer depends on Homebrew's openssl

I looked it up again and found that ruby-build no longer depends on Homebrew's openssl and compiles openssl on every install.
To use Homebrew's openssl as before, pass an option to the RUBY_CONFIGURE_OPTS environment variable.

The ruby-build Wiki describes how to set a value for RUBY_CONFIGURE_OPTS as a recommended setting for macOS, so if you have specified this value in your existing environment, you may want to disable it. Hmm.

Scroll to Top