Символ пакета Ruby не найден: _SSLv2_client_method (LoadError)

248

Я делал попытку сделать некоторые обновления для 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>'
  • 2
    SSLv2 не работает, поэтому у кода практически нет причин иметь код SSLv2_client_method . Можете ли вы открыть файл (ы) Ruby и закомментировать ссылки на методы SSLv2? Основной причиной является libssl в /usr/local/opt/openssl/lib настроенный с no-ssl2 (но это не должно быть проблемой в 2014 году).
Теги:
openssl
homebrew
rbenv

10 ответов

289
Лучший ответ

Я просто установил аналогичную проблему в своей системе. Вам нужно перестроить свою установку 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
  • 15
    Я просто попробовал это, и это не решило мою проблему вообще
  • 0
    Это происходит после новой установки ruby 1.9.3 через rvm. Новый Mac и старая кодовая база. Нужна ли другая версия openssl?
Показать ещё 10 комментариев
185

У меня была аналогичная проблема после обновления 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

Если у вас несколько гемзет, вам придется повторить эти шаги для каждого из них.

  • 10
    Это сработало для меня. RVM автоматически запустил здание Gemset.
  • 0
    Я работал на Yosemite, я просто запустил: rvm get stable и rvm reinstall ruby-2.0.0
Показать ещё 4 комментария
17

Иметь такую ​​же проблему для 1.9.3-p547, под rvm

rvm reinstall ruby-1.9.3-p547

Ruby снова устанавливается, но не удается настроить gemset_pristine для приложения, потому что

libv8 version 3.16.14.3 failed

Именно по этой причине я дошел до этого момента. Злобный фрустрирующий круг...

Обновление
Проверьте версию своей платформы. У меня есть, например, Darwin 10.8, и это не указано здесь. Итак, если ваша версия жука libv8 не имеет предварительно скомпилированного бинарного файла для вашей платформы, это займет длительное (долгое время) время. Выходите на обед, в кино, выходите... Если достаточно спросить, может быть, они настроят двоичный дистрибутив...

  • 1
    Мне также нужна поддержка ruby 1.9.3 и я использую rvm , homebrew и xcode v6.1.1 на Yosemite 10.10.2. Я использовал просто rvm reinstall ruby-1.9.3-p394 ; после компиляции нового рубина RVM сделал драгоценные камни нетронутыми, а также без проблем.
  • 0
    Да, он основан на бинарном распределении. Ссылка предназначена для того, чтобы сначала проверить, получит ли он немедленный ответ или уйдет и медитирует!
14

Имела ту же ошибку и разрешала ее с помощью brew upgrade openssl

  • 5
    нужно было brew link --force openssl ?
  • 0
    @kbrock, нет, я не сделал.
6

Вы можете быть доком, как я, с несколькими opensl

У меня была такая же проблема для 2.1.2, и у Райана Длугоша отличный ответ не прошел достаточно далеко. Моя проблема заключалась в том, что у меня было установлено несколько версий openssl (я думаю, что я установил через brew и git в предыдущих проектах).

Мне пришлось удалить /opt/local/bin/openssl, а затем переустановить 2.1.2.

Проверить глобальный rbenv ruby ​​

$ 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
5

Когда проблема не решалась вообще, я предлагаю удалить RVM. И переустановите RVM и Rails.

удаление RVM

Как удалить RVM (Ruby Version Manager) из моей системы?

установка RVM, Rail

$curl -L https://get.rvm.io | bash -s
$ 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 --version 4.0.5

4

Пользователи rbenv:

Это помогает убедиться, что вы используете правильную версию ruby. Если вы переустановите rbenv или установите новый рубин, перейдите к только что установленной рубиновой версии:

$rbenv local 2.1.3

1

У меня была аналогичная проблема, возникшая после обновления до 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
1

В случае, если это может помочь кому-либо: у меня была установлена ​​новая версия Ruby (2.1.2), а в моем файле .ruby-version я ссылался на старый (2.0.0-p353)

Изменение моего файла .ruby-версии в 2.1.2 исправило проблему для меня.

0

В дополнение к приведенным выше ответам на прием, вам, возможно, придется сказать rbenv, чтобы использовать новую установленную версию. Например, у меня была старая версия в ~/.rbenv/version, поэтому rbenv всегда использовал старый. Вручную установка новой версии в этом файле (или в командной строке) должна устранить проблему.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2
  • 0
    и если у вас проблемы с тем, что rbenv не видит более поздние версии, как кто-то из моих знакомых ... убедитесь, что вы обновили ruby-build. скорее всего через варку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню