Библиотека не загружена (libcrypto)

После обновления пакетов ruby и rubyenv я столкнулся с ошибкой. Библиотека libcrypto не загружена.

При выполнении предложенной команды кажется, что она ищет openssl в ruby ​​/Users/User/.rvm/rubies/ruby-2.4.1. Но в моей системе я использую /usr/local/Cellar/ruby/2.6.5.

$ gem pristine executable-hooks --version 1.3.2
Error loading RubyGems plugin "/Users/User/.rvm/gems/ruby-2.4.1@global/gems/gem-wrappers-1.2.7/lib/rubygems_plugin.rb": dlopen(/Users/User/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/User/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/openssl.bundle
  Reason: image not found - /Users/User/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/openssl.bundle (LoadError)
ERROR:  Loading command: pristine (LoadError)
    dlopen(/Users/User/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/User/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/openssl.bundle
  Reason: image not found - /Users/User/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/openssl.bundle
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

Я использовал приведенную выше команду для диагностики другой ошибки (возможно, это поможет):

$ bundle install --system
Ignoring executable-hooks-1.3.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.2.7 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.2.7
Ignoring unf_ext-0.0.7.4 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.4
/Users/User/.rbenv/versions/2.3.1/lib/ruby/2.3.0/digest.rb:16:in `const_missing': library not found for class Digest::MD5 -- digest/md5 (LoadError)
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/source/rubygems/remote.rb:26:in `cache_slug'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:107:in `cache_path'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:83:in `compact_index_client'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/cli.rb:630:in `warn_on_outdated_bundler'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/cli.rb:15:in `ensure in start'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/cli.rb:16:in `start'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/exe/bundle:35:in `block in <top (required)>'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/exe/bundle:27:in `<top (required)>'
    from /Users/User/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
    from /Users/User/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'
mdm:ios si$ export PATH="/usr/local/opt/[email protected]/bin:$PATH"
mdm:ios si$ bundle install --system
Ignoring executable-hooks-1.3.2 because its extensions are not built.  Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.2.7 because its extensions are not built.  Try: gem pristine gem-wrappers --version 1.2.7
Ignoring unf_ext-0.0.7.4 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.4
/Users/User/.rbenv/versions/2.3.1/lib/ruby/2.3.0/digest.rb:16:in `const_missing': library not found for class Digest::MD5 -- digest/md5 (LoadError)
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/source/rubygems/remote.rb:26:in `cache_slug'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:107:in `cache_path'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:83:in `compact_index_client'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/cli.rb:630:in `warn_on_outdated_bundler'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/cli.rb:15:in `ensure in start'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/cli.rb:16:in `start'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/exe/bundle:35:in `block in <top (required)>'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
    from /Users/User/.rvm/gems/ruby-2.4.1@global/gems/bundler-1.15.1/exe/bundle:27:in `<top (required)>'
    from /Users/User/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
    from /Users/User/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'

person Peter G.    schedule 25.11.2019    source источник
comment
Что произойдет, если вы попробуете выполнить то, что предлагается в сообщении об ошибке? gem pristine executable-hooks --version 1.3.2?   -  person Casper    schedule 25.11.2019
comment
Пробовал, кажется, у меня проблема с связыванием (см. обновленный вопрос).   -  person Peter G.    schedule 26.11.2019


Ответы (2)


Я сделал быстрый тест:

rvm 2.6.5

Чтобы определить, что ruby-2.6.5 не был установлен, я установил его:

rvm install "ruby-2.6.5"
person Peter G.    schedule 26.11.2019
comment
В порядке. Хорошо. Это также должно работать, если вы хотите придерживаться RVM. Не забудьте установить новый Ruby по умолчанию после установки. - person Casper; 26.11.2019

Вы говорите, что используете системный Ruby из /usr/local/, а сообщения об ошибках исходят от установки RVM.

Вам нужно либо удалить RVM, либо установить системный Ruby по умолчанию для RVM:

rvm --default use system

Дополнительные обсуждения здесь:
отключить RVM или использовать Ruby, который был установлен без RVM?

person Casper    schedule 26.11.2019