Символ пакета Ruby не найден: _SSLv2_client_method (LoadError)
Я пытался сделать некоторые обновления для openssl, используя homebrew, и мне как-то удалось все сломать. Я ничего не могу сделать сейчас, вот что я получаю, когда пытаюсь выполнить пакетную установку:
$ bundle install
/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError)
Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/dependency_installer.rb:3:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/installer.rb:2:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli/install.rb:78:in `run'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:146:in `install'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/command.rb:27:in `run'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/invocation.rb:121:in `invoke_command'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor.rb:363:in `dispatch'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/base.rb:440:in `start'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:9:in `start'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `block in <top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors'
from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `<top (required)>'
from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `load'
from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `<main>'
10 ответов
Я только что исправил похожую проблему в моей системе. Вам нужно пересобрать вашу установку Ruby 2.1.2, и она будет заново привязана к недавно обновленному SSL.
$ rbenv install 2.1.2
rbenv: /Users/ryan/.rbenv/versions/2.1.2 already exists
continue with installation? (y/N) y
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/ryan/.rbenv/versions/2.1.2
У меня была похожая проблема после обновления openssl. Я использую RVM. Я смотрел, обновляя RVM.
$ rvm get stable
Я затем переустановил 1.9.3.
rvm reinstall ruby-1.9.3-p545
После переустановки я запустил:
$ rvm gemset pristine
Если вы обнаружите какие-либо ошибки, восстанавливающие ваш гемсет, лучшим вариантом будет очистить гемс и восстановить его.
rvm gemset use mygemset
rvm gemset empty mygemset
gem install bundler
bundle install
Если у вас есть несколько наборов гемов, вам придется повторить эти шаги для каждого из них.
Есть такая же проблема для 1.9.3-p547, под rvm
rvm reinstall ruby-1.9.3-p547
Ruby переустанавливается, но не удается настроить gemset_pristine
для приложения, потому что
libv8 version 3.16.14.3 failed
что и стало причиной того, что я дошел до этого момента. Порочный круг разочарования...
Обновить
Проверьте версию вашей платформы. У меня есть например Дарвин 10,8, и это не указано здесь. Таким образом, если ваша версия гема libv8 не имеет предварительно скомпилированного двоичного файла для вашей платформы, это займет много времени. Выйдите на ужин, в кино, расслабьтесь... Если хватит, спросите, может, они установят бинарный дистрибутив...
Вы можете быть придурком, как я, с несколькими openssl
У меня была та же самая проблема для 2.1.2, и превосходный ответ Райана Длугоша не зашел достаточно далеко. Моя проблема заключалась в том, что у меня было установлено несколько версий openssl (кажется, я установил через brew
а также git
в предыдущих проектах).
Мне пришлось удалить /opt/local/bin/openssl, а затем пересобрать 2.1.2.
Проверьте глобальный рубиновый рубин
$ rbenv global
2.1.2
Проверьте openssl
$ which -a openssl
/opt/local/bin/openssl
/opt/local/bin/openssl
/usr/bin/openssl
Убить дубликат openssl
$ sudo rm -rf /opt/local/bin/openssl
Перестройте 2.1.2.
$ rbenv install -f 2.1.2
Downloading openssl-1.0.1g.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
Installing openssl-1.0.1g...
Installed openssl-1.0.1g to /Users/globber/.rbenv/versions/2.1.2
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/globber/.rbenv/versions/2.1.2
Когда проблема вообще не решилась, предлагаю удалить RVM. И переустановите RVM и Rails.
удаление RVM
Как я могу удалить RVM (Ruby Version Manager) из моей системы?
установка RVM, Rail
$ curl -L https://get.rvm.io/ | Баш-с
$ rvm становится стабильным
$ rvm требования
$ rvm install 2.0.0 --with-openssl-dir = $ HOME /.rvm / usr
$ rvm use 2.0.0 $ gem update --system 2.0.3
$ gem install rails - версия 4.0.5
Пользователи rbenv:
Это помогает убедиться, что вы используете правильную версию ruby. Если вы переустанавливаете rbenv или устанавливаете новый ruby, перейдите на версию ruby, которую вы только что установили:
$ rbenv local 2.1.3
У меня была похожая проблема, которая возникла после обновления до ruby 2.2.2. Тем не менее, моя среда немного отличается, в результате чего вышеуказанные решения не работают.
Я использую:
- OSX Yosemite (10.10.4)
- chruby
- рубиново-установки
- openssl (устанавливается с помощью homebrew)
Следующая команда (и) разрешила это в моей ситуации:
> sudo ruby-install -r /opt/rubies ruby 2.2.2 -- --with-openssl-dir=/usr/local/opt/openssl
> gem install bundler
> bundler install
В случае, если это может кому-нибудь помочь: у меня была установлена более новая версия Ruby (2.1.2), и в моем файле.ruby-version я ссылался на старую (2.0.0-p353)
Изменение файла.ruby-версии на 2.1.2 устранило проблему для меня.
В дополнение к ответам о принятии выше, вам, возможно, придется указать rbenv использовать только что установленную версию. Например, у меня была старая версия в ~/.rbenv/version, поэтому rbenv всегда использовал старую. Ручная установка новой версии в этом файле (или через командную строку) должна решить проблему.
rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2