我遇到需要'digest/sha1'
的问题。Ruby中的LoadError
~$ ./configure --prefix=$HOME/usr --program-suffix=19 --enable-shared
~$ make
~$ make install
~$ irb19
irb(main):001:0> require 'digest/sha1'
LoadError: dlopen(/Users/matan/usr/lib/ruby19/1.9.1/i386-darwin9.8.0/digest/sha1.bundle, 9): Symbol not found: _rb_Digest_SHA1_Finish
Referenced from: /Users/matan/usr/lib/ruby19/1.9.1/i386-darwin9.8.0/digest/sha1.bundle
Expected in: flat namespace
- /Users/matan/usr/lib/ruby19/1.9.1/i386-darwin9.8.0/digest/sha1.bundle
from (irb):1:in `require'
from (irb):1
from /Users/matan/usr/bin/irb19:12:in `<main>'
irb(main):002:0>
我知道一些标准模块需要罚款,而另一些则不需要。如果我说require 'yaml'
甚至require 'digest'
那么这工作正常。我正在使用OS X 10.5.8和Ruby 1.9.1-p378。 Ruby 1.8.6的系统安装很好。
就在上周我卸载了Ruby并重新安装了它。当我第一次安装Ruby时,我以类似的方式安装了它,来自我的本地$HOME/usr
目录前缀。我试图删除每个文件make install
安装,然后重新安装,但没有帮助。
你知道这个问题是什么以及如何解决它吗?
事实上,在RVM的Ruby 1.9.2-head中,我没有需要digest/sha1的问题。但是我仍然想知道从源代码安装时出了什么问题。我也遇到了安装1.9.2-head以外的任何Ruby的问题,但我想这属于一个新的,不同的问题。 – wilhelmtell 2010-06-21 18:10:38
通过彻底删除OpenSSL,我看到在嵌入式Linux系统上修复了这样一个问题。但是这实际上打破了rubygems。 – 2010-06-21 21:39:07
我认为应该是'rvm pkg install openssl'而不是'rvm package install openssl' – Oleander 2012-02-08 00:09:45