Ruby и "Вы должны перекомпилировать Ruby с поддержкой OpenSSL или изменить источники в своем Gemfile"

Используя rvm, я обновил свой ruby ​​до 1.9.3-p392, также добавил 2.0.0, в любое время, когда я пытаюсь использовать эту версию, когда я запускаю команду пакета, я получаю эту ошибку.

Could not load OpenSSL.
You must recompile Ruby with OpenSSL support or change the sources in your Gemfile from 'https' to 'http'. Instructions for compiling with OpenSSL using RVM are
available at rvm.io/packages/openssl.

Я выполнил несколько разных инструкций о том, как исправить это. Я попытался удалить версию и установить ее с параметрами rvm

--with-openssl-dir=$HOME/.rvm/usr

Я установил OpenSSL с rvm и macports. Оба не помогли этой проблеме. Я даже изменил местоположение файла сертификата ssl, используя это:

export SSL_CERT_FILE=/Users/DarkLord/.rvm/usr/ssl/cert.pem

Независимо от того, что я делаю, я продолжаю получать ошибку. Может кто-нибудь, пожалуйста, помогите мне исправить это?

Ответ 1

Чтобы снова работать, мне пришлось установить homebrew и перенести мои порты mac в сторону. Затем выполните следующие действия после удаления 1.9.3-p392 и 2.0.0-p0:

rvm get head --autolibs=3
rvm install 1.9.3 --with-opt-dir=/usr/bin
rvm install 2.0.0

Было что-то не работает с моими портами mac и openssl, а также make и configure. Это был единственный способ заставить rvm снова установить ruby, не получая проблемы с openssl или проблемы с настройкой/настройкой.

Ответ 2

Это работает для меня:

rvm get stable

brew install libyaml

rvm pkg install openssl

rvm install ruby-2.0.0 --with-openssl-dir=$HOME/.rvm/usr

rvm use ruby-2.0.0

Все кредиты отправляются https://coderwall.com/p/tptocq

Ответ 3

Это помогает мне установить 1.9.3-head на Mac:

rvm get latest    
brew install openssl    
rvm reinstall 1.9.3-head --with-openssl-dir=`brew --prefix openssl`

Ответ 4

В моем случае после:

 1. brew install openssl
 2. rvm install ruby-2.6.0

bundle install не удалась с этой ошибкой. Проблема заключалась в том, что openssl был установлен глобально, поэтому мне пришлось установить новую версию ruby, явно указав каталог openssl.

Так что я должен был сделать:

 1. rvm reinstall ruby-2.6.0 --with-openssl-dir=/usr/local/opt/openssl
 2. rvm reload

Предполагая, что usr/local/opt/openssl находится там, где он установлен.

После этого bundle install прошла успешно.

Предупреждение, когда я попробовал эту команду с этим путем /usr/local как предлагалось в некоторых ответах, это не сработало.

Ответ 6

Следующие шаги помогли мне.

Сначала убедитесь, openssl устанавливается путем запуска brew install openssl, а затем установите версию рубиновый с помощью RVM, но на этот раз, вы должны пройти with-opt-dir флаг, указывающий на место, где OpenSSL была установлена на вашем компьютере (используйте команду, which openssl чтобы найти это место).

rvm install 1.9.3-p392 --with-openssl-dir=/usr/local/opt/openssl

Ответ 7

В macOS 10.14, Ruby 2.5.3 и OpenSSL 1.0.2n это сработало для меня:

./configure --with-openssl --with-openssl-dir=/usr/local/ssl

но я только пробовал то, что сообщали мне сообщения об ошибках:

*** Following extensions are not compiled:
openssl:
    Could not be configured. It will not be installed.
    /Users/brian/Desktop/Ruby/ruby-2.5.3/ext/openssl/extconf.rb:97: OpenSSL library could not be found. You might want to use --with-openssl-dir=<dir> option to specify the prefix where OpenSSL is installed.
    Check ext/openssl/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
make[1]: *** [note] Error 1

Ответ 8

Вот что мне помогло:

rvm reinstall 2.5

brew tap raggi/ale
brew install openssl-osx-ca
brew services start openssl-osx-ca

Нашел это решение здесь: https://github.com/raggi/openssl-osx-ca#readme