Ruby 提出来LoadErrors我不明白。它抱怨打开共享对象文件(当它存在时)。
irb(main):001:0> require 'openssl'
LoadError: libssl.so.1.0.0: cannot open shared object file: No such file or directory - /usr/lib/ruby/2.3.0/x86_64-linux/openssl.so
from /usr/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.3.0/openssl.rb:13:in `<top (required)>'
from /usr/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Run Code Online (Sandbox Code Playgroud)
但ls /usr/lib/ruby/2.3.0/x86_64-linux/openssl.so
返回文件/usr/lib/ruby/2.3.0/x86_64-linux/openssl.so
加载路径:
irb(main):001:0> pp $LOAD_PATH
["/usr/lib/ruby/site_ruby/2.3.0",
"/usr/lib/ruby/site_ruby/2.3.0/x86_64-linux",
"/usr/lib/ruby/site_ruby",
"/usr/lib/ruby/vendor_ruby/2.3.0",
"/usr/lib/ruby/vendor_ruby/2.3.0/x86_64-linux",
"/usr/lib/ruby/vendor_ruby",
"/usr/lib/ruby/2.3.0",
"/usr/lib/ruby/2.3.0/x86_64-linux"]
Run Code Online (Sandbox Code Playgroud)
另一个例子,rails安装了 gem 后,生成新项目失败,并显示以下LoadError.
/usr/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require': libcrypto.so.1.0.0: cannot open shared object file: No such file or directory - /usr/lib/ruby/2.3.0/x86_64-linux/digest/md5.so (LoadError)
Run Code Online (Sandbox Code Playgroud)
再次,执行操作ls /usr/lib/ruby/2.3.0/x86_64-linux/digest/md5.so会显示该文件的存在。
我的红宝石版本是ruby 2.3.1p112. 如果您想知道,uname -m请返回x86_64。
我想我一定错过了一些明显的事情。任何出现的提示都非常感谢!
感谢jordanm的评论,我能够解决这个问题!
该问题与openssl. ldd打印共享对象依赖关系并显示丢失的库。
ldd /usr/lib/ruby/2.3.0/x86_64-linux/openssl.so
...
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
...
Run Code Online (Sandbox Code Playgroud)
安装openssl-1.0软件包后(openssl安装了 v1.1.0 软件包时),相同命令的输出看起来更好:
libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007faddac8f000)
libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007fadda814000)
Run Code Online (Sandbox Code Playgroud)
现在,我能够require 'openssl'生成一个新rails项目。
但毕竟,ruby 不应该抱怨缺少软件包,或者openssl-1.0至少应该是 的依赖项吗rails?
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |