Символ Ruby Bundle не знайдено: _SSLv2_client_method (LoadError)


249

Я робив спробу зробити кілька оновлень для 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 році).
jww

Відповіді:


287

Я просто вирішив подібну проблему в своїй системі. Вам потрібно відновити інсталяцію 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

Це відбувається після нової установки рубіну 1.9.3 через rvm. Новий Mac та стара база коду. Чи потрібна мені інша версія openssl?
digidigo

8
@ dvanaest17 Помилки пов'язані з тим, що не вдалося знайти бібліотеку SSL, і ОП зазначило, що нещодавно оновили встановлену версію openssl. У мене була та сама проблема з тим же сценарієм оновлення; Я підозрюю, що перевстановлення виправляє речі, викликаючи побудову Ruby на основі оновлених бібліотек (старих неможливо знайти).
Райан Длугош

7
Просто для додання цього, якщо користувач boxen натрапив на це - я не зміг заставити rbenv перевстановлюватися за допомогою команд, наведених вище - тому мені довелося видалити та перевстановити 2.1.2 за допомогою rbenv rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco

4
Після оновлення йосеміту у мене виникла ця проблема. Вищезгадане спрацювало, але лише після того, як я перенаправив свій gcc. export CC=/usr/bin/gccДля отримання додаткової інформації: ось випуск github від rbenv, який допоміг
Ден Вільямс

1
Якщо ви встановили rbenv з домашньою мовою, вам може знадобитися brew upgrade rbenv ruby-buildтакож.
Джастін Таннер

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 автоматично вигнав будівлю з дорогоцінних каменів.
Дюкан

Я працював для мене на Yosemite, я щойно біг: rvm get stableіrvm reinstall ruby-2.0.0
MatCarey

4
У Yosomite у мене була проблема встановлення рубіну, оскільки він не в змозі знайти потрібну gccверсію. Я закінчивCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Олександр Белецький

@MatCarey rvm get stableі теж rvm reinstall ruby-2.0.0працював у Mavericks. Дякую.
америткара

Те, що для мене працювало, rvm get stableслідує за тим, що rvm install ruby-2.0.0-p598я відставав від декількох версій патчів. Крім того, я оновив .ruby-version, запустив bundleі вийшов із свого поточного робочого каталогу ( cd ..) і повернувся до нього ( cd -) перед тим, як успішно запуститися foreman start.
user664833

17

У тому ж випуску для 1.9.3-p547 під обертами

rvm reinstall ruby-1.9.3-p547

Ruby перевстановлюється, але не вдається настроїти gemset_pristineпрограму, оскільки

libv8 version 3.16.14.3 failed

що було причиною того, що я дійшов до цього питання в першу чергу. Зачароване коло розчарування ...

оновлення
Перевірте свою платформу. У мене є, наприклад, Darwin 10.8, і це не вказано тут . Отже, якщо ваша версія gem libv8 не має попередньо складеного бінарного файлу для вашої платформи, це займе багато (довго-довго) часу. Вийдіть на вечерю, у кіно, розслабтеся ... Якщо достатньо запитаєте, можливо, вони встановлять бінарний дистрибутив ...


1
Мені також потрібна підтримка рубіну 1.9.3 і я використовую rvm, homebrewі xcodev6.1.1 на Yosemite 10.10.2. Я використовував просто rvm reinstall ruby-1.9.3-p394; після складання нового рубіну, RVM зробив дорогоцінні камені первозданними, а також жодних проблем.
Том Гаррісон

Так, він заснований на двійковому розподілі. Посилання є для того, щоб дозволити спочатку перевірити, чи отримають вони негайну відповідь чи відійдуть і медитують!
Ієронім


7

Ви можете бути дурком, як я, з декількома "opensl"

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

Мені довелося видалити / opt / local / bin / openssl, а потім відновити 2.1.2.

Перевірте глобальний рубін rbenv

$ 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 встановити 2.0.0 - with-openssl-dir = $ HOME / .rvm / usr
$ rvm використовувати 2.0.0 $ gem update --система 2.0.3
$ gem встановити рейли --версія 4.0.5


4

Користувачі rbenv:

Це допомагає переконатися, що ви використовуєте правильну версію рубіну. Якщо ви перевстановлюєте rbenv або встановлюєте новий рубін, перейдіть на щойно встановлену версію ruby:

$ rbenv локальний 2.1.3


1

У випадку, якщо це може комусь допомогти: у мене була встановлена ​​новіша версія Ruby (2.1.2), і у своєму файлі .ruby-версії я посилався на стару (2.0.0-p353)

Змінивши мій файл .ruby-версії на 2.1.2, виправлено проблему.


1

У мене була подібна проблема, яка виникла після переходу на рубін 2.2.2. Однак моє оточення трохи інше, тому що вищезазначені рішення не працюють.

Я використовую:

  • OSX Yosemite (10.10.4)
  • чубатий
  • рубін-інсталяція
  • openssl (встановлюється через домашню мову)

Наступна команда вирішила це в моїй ситуації:

> sudo ruby-install -r /opt/rubies ruby 2.2.2 -- --with-openssl-dir=/usr/local/opt/openssl
> gem install bundler
> bundler install

0

На додаток до вищезазначених відповідей про прийняття, можливо, доведеться сказати rbenv використовувати нещодавно встановлену версію. Наприклад, у мене була стара версія в ~ / .rbenv / версії, тому rbenv завжди використовував стару. Вручну встановити нову версію у цьому файлі (або через командний рядок) слід усунути проблему.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2

і якщо у вас проблеми з rbenv, не бачивши пізніших версій, як, наприклад, хтось, кого я знаю ... будьте впевнені, що ви оновили ruby-build. швидше за все, через заварку.
wkhatch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.