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
как предлагалось в некоторых ответах, это не сработало.
Ответ 5
В соответствии со следующим вопросом:
Как узнать, какая версия openssl lib фактически используется рубином RVM
Кажется, что опции --with-openssl-dir=...
уже не действуют с Ruby 1.9.3. Я попробовал
rvm install 1.9.3 --with-opt-dir=/usr/local --with-openssl
и он работал.
Ответ 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