我很着急,已经折腾了两天仍然无法解决以下问题。
在 Lion 系统升级后,我想使用最新版本的 rvm 安装额外的 Ruby 版本。
当我调用 bundler 时发生了以下情况:
/Users/felix/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': dlopen(/Users/janroesner/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/x86_64-darwin11.1.0/digest/sha1.bundle, 9): Symbol not found: _SHA1_Init (LoadError)
好的,openssl问题。我检查了一下,在/usr中没有openssl,但是有库在/usr/lib中,头文件在/usr/include/openssl中。检查。
我决定用brew安装一个更新的版本。然后所有的ruby都无法编译,出现BN_rand_range和BN_peudo_rand_range已经定义的错误。
最近的gcc似乎更加严格,所以我取消了/usr/include/openssl/bn.h文件中的第411和412行注释,这引起了冲突,因为ruby自己也定义了这两个函数。现在ruby可以编译了,但是我收到了相同的错误:Symbol not found: _SHA1_Init。
于是我把之前放在那里的openssl头文件bn.h中的注释删除了,并尝试了相反的方法。我在~/.rvm/src/ruby-1.9.2-p290/ext/openssl/openssl_missing.h中注释掉了这些行。
结果还是一样。
之后,我完全删除了~/.rvm,重新安装它,但是...仍然遇到了同样的问题。
现在我尝试了:
rvm pkg install openssl
rvm remove 1.9.2-p290
rvm install 1.9.2-p290 -C --with-openssl-dir=$rvm_path/usr
同样的结果。
我很绝望。有人能帮忙吗? 谢谢 Felix