Библиотека не загружена:/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 ]
Любые идеи, как это исправить?
Ответы
Ответ 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
работал у меня