Подтвердить что ты не робот

Библиотека не загружена:/opt/local/lib/libssl.1.0.0.dylib(LoadError)

Я только что обнаружил, что больше не могу gem push …, и некоторые копания привели меня к необходимости обновлять мои сертификаты SSL RVM.

Я побежал rvm osx-ssl-certs status all, но это дало мне:

/Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': dlopen(/Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle, 9): Library not loaded: /opt/local/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle
  Reason: image not found - /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle
    from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/openssl.rb:17:in `<top (required)>'
    from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
Certificates for /usr/local/etc/openssl/cert.pem: Up to date.
Certificates for : Old.
Certificates for /etc/openssl/cert.pem: Up to date.

rvm -v показывает, что я запускаю последнюю версию RVM (на сегодняшний день)

rvm 1.22.15 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

Как ни странно, я не уверен, почему это относится к ruby-2.0.0-p195, однако, поскольку rvm list дает

rvm rubies

   ruby-1.9.3-p392 [ x86_64 ]
   ruby-2.0.0-p195 [ x86_64 ]
=* ruby-2.0.0-p247 [ x86_64 ]

Любые идеи, как это исправить?

4b9b3361

Ответ 1

В ваших вопросах упоминаются три пути /opt/local, /usr/local и /etc/openssl, они принадлежат Macports, Homebrew и SM Framework соответственно.

Поскольку последний используется для создания статических рубинов, он безвреден и не связан с проблемой. Остальные два предполагают, что вы переключились с macports на homebrew между установкой рубинов.

Вам нужно переустановить ruby-2.0.0-p195, который ссылается на старые пути из macports, вы можете сделать это с помощью

rvm reinstall ruby-2.0.0-p195

Вы можете получить более подробную информацию о рубинах и путях openssl, которые они используют:

rvm --debug osx-ssl-certs update all

Ответ 2

Удаление openssl и его повторная установка работали для меня.

brew remove openssl  

а затем

brew install openssl

Ответ 3

Пытаясь запустить 'bundle', я также начал получать жалобу opensl dylib, хотя немного другой путь. Я пробовал большинство из них и несколько других вещей. У меня был rvm, и некоторые сломанные остатки фикшей устанавливались, хотя я пытался заменить его на brew некоторое время назад. Много раз я получал

Library not loaded: /sw/lib/libssl.1.0.0.dylib

Однако попытка переустановки openssl с brew всегда производилась

sudo brew link openssl
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.

или

Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

Так что было довольно запутанно, что я должен делать. Что, казалось, помогло, в конце концов, после долгих испытаний, включило:

$ rm /Users/dan/.rvm/rubies/default/lib/ruby/1.9.1/x86_64-darwin11.4.0/openssl.bundle

который ссылался на несуществующий файл /sw/lib/libssl.1.0.0.dylib. Тогда

$ sudo brew update && sudo brew upgrade
$ rvm reset

изменила мою версию с 1.9.1 до

$ ruby --version
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

В какой момент мне пришлось переустановить bundler (?)

$ gem install bundler

Но, наконец, я мог запустить "пакет" в моем проекте, и он, казалось, вел себя.

Ответ 4

В моем случае это была версия Ruby при наборе:

Я сделал:

rvm list

выход:

   ruby-1.9.3-p448 [ x86_64 ]
   ruby-2.0.0-p247 [ x86_64 ]
   ruby-2.0.0-p353 [ x86_64 ]
   ruby-2.0.0-p451 [ x86_64 ]

а затем я изменился на ruby-2.0.0-p451:

rvm use ruby-2.0.0-p451

и

bundle

успешно выполнено;)

Ответ 5

sudo brew update && sudo brew upgrade

работал у меня