运行包时“无法加载此类文件 -- openssl”

Viv*_*vek 4 ruby packaging

当我尝试使用bundler 时,出现错误:

/home/vivek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 无法加载此类文件 -- openssl (LoadError )

完整的错误消息如下。我该如何解决?

Fetching gem metadata from https://rubygems.org/.Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Please include the full output of the command, your Gemfile and Gemfile.lock. Thanks!
/home/vivek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- openssl (LoadError)
    from /home/vivek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /home/vivek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/https.rb:22:in `<top (required)>'
    from /home/vivek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /home/vivek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/net/http/persistent.rb:447:in `ssl'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/net/http/persistent.rb:216:in `connection_for'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/net/http/persistent.rb:358:in `request'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/fetcher.rb:135:in `fetch'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/fetcher.rb:163:in `fetch_dependency_remote_specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/fetcher.rb:122:in `fetch_remote_specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/fetcher.rb:70:in `specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/source.rb:234:in `block in remote_specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/source.rb:232:in `each'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/source.rb:232:in `remote_specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/source.rb:165:in `fetch_specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/source.rb:70:in `specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:205:in `block (2 levels) in index'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:202:in `each'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:202:in `block in index'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/index.rb:9:in `build'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:198:in `index'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:192:in `resolve'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:127:in `specs'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/definition.rb:122:in `resolve_remotely!'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/installer.rb:48:in `run'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/installer.rb:12:in `install'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/cli.rb:220:in `install'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/thor.rb:263:in `dispatch'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/lib/bundler/vendor/thor/base.rb:386:in `start'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.3/bin/bundle:13:in `<top (required)>'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle:23:in `load'
    from /home/vivek/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)

Ser*_*gey 8

以下教程建议使用 SSL 支持重新编译 Ruby:http : //www.dinduks.com/rails-cannot-load-such-file-openssl

假设您使用 RVM,以下是解决此问题的步骤。

安装 openssl 包

rvm pkg install openssl
Run Code Online (Sandbox Code Playgroud)

删除您正在使用的 Ruby 安装

rvm remove 1.9.3
Run Code Online (Sandbox Code Playgroud)

最后用openssl重新编译Ruby

rvm install 1.9.3 --with-openssl-dir=$HOME/.rvm/usr
Run Code Online (Sandbox Code Playgroud)

现在一切都应该正常了。不要忘记:

rvm use 1.9.3 --default
Run Code Online (Sandbox Code Playgroud)

这里有一些更多的链接,它们基本上建议做同样的事情:

  • 根据记录,你的方法对我有用。我的安装要求为所有用户安装 RVM,因此 OpenSSL 目录为 /usr/local/rvm/usr。感谢您的详细解释以及额外的链接。你应该得到好的答案 &gt; @Vivek (2认同)