我很绝望,现在两天(!!)天都在摆弄以下问题,但没有解决方案。
更新 Lion 后,我想使用最新版本的 rvm 安装额外的 rubies。
这是我之后调用捆绑器时发生的情况:
/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 可以编译,但我收到相同的错误符号未找到:_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
相同的结果。
我很绝望。有人可以帮忙吗?
问候
菲利克斯