在osx上安装ruby 2.3时出错

时间:2016-04-15 14:04:59

标签: macos rvm ruby-2.3

我在尝试在osx上安装2.3 ruby​​时遇到错误 我已将rvm更新为稳定1.27.0

然后我尝试安装2.3

% rvm install 2.3
ruby-2.3.0 - #removing src/ruby-2.3.0 - please wait
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.11/x86_64/ruby-2.3.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/password123/.rvm/rubies/ruby-2.3.0, this may take a while depending on your cpu(s)...
ruby-2.3.0 - #downloading ruby-2.3.0, this may take a while depending on your connection...
ruby-2.3.0 - #extracting ruby-2.3.0 to /Users/password123/.rvm/src/ruby-2.3.0 - please wait
ruby-2.3.0 - #configuring - please wait
ruby-2.3.0 - #post-configuration - please wait
ruby-2.3.0 - #compiling - please wait
Error running '__rvm_make -j 1',
showing last 15 lines of /Users/password123/.rvm/log/1460728216_ruby-2.3.0/make.log
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ossl_ssl.c:18:35: note: expanded from macro 'numberof'
#define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
                                  ^~~~~
ossl_ssl.c:2266:21: error: invalid application of 'sizeof' to an incomplete type 'const struct (anonymous struct at ossl_ssl.c:85:14) []'
    for (i = 0; i < numberof(ossl_ssl_method_tab); i++) {
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ossl_ssl.c:18:35: note: expanded from macro 'numberof'
#define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
                                  ^~~~~
4 warnings and 10 errors generated.
make[2]: *** [ossl_ssl.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2
+__rvm_make:0> return 2
There has been an error while running make. Halting the installation.  

您能否告诉我修复此错误的任何步骤?

4 个答案:

答案 0 :(得分:5)

基于this rbenv discussion,我能够通过卸载,重新安装和强制链接Homebrew OpenSSL来解决这个问题:

brew uninstall --force openssl
brew install openssl
brew link --overwrite openssl --force
rvm install 2.3.0

如果我知道brew link可能产生的副作用,我会感觉更好,但它有效。

答案 1 :(得分:4)

它对我有用:

重新启动osx,然后

brew uninstall openssl
brew unlink openssl098
brew install openssl
brew link --overwrite --force openssl
rvm install 2.3.0 # (or rvm install 2.3.1)

基于https://github.com/rvm/rvm/issues/3656

答案 2 :(得分:1)

在运行提到的行之后仍然得到相同的错误, 最后我通过更新hombrew解决了我的问题,然后卸载并安装openssl,然后rvm再次安装ruby 2.3

答案 3 :(得分:0)

安装ruby <= 2.3.0与Openssl@1.1的兼容性存在问题。

这对我有用

rvm install 2.3.0 --with-openssl-lib=/opt/local/lib/openssl --with-openssl-include=/opt/local/include/openssl