2016-12-18 7 views
-1

WindowsのVMにLinux Mint 18をインストールしました。いくつかのルビーをインストールしようとすると、プロセスの同じ時点でエラーが発生します。私はruby-installを使っていますが、ruby-buildも同じ結果を試しました。私は彼らが基本的に同じことをやっていると思います。Ruby on Mintをインストールする際のOpenSSLコンパイルエラー18

古いプロジェクトで作業するためには1.9.3をインストールする必要があり、失敗するとp448とp551の両方が失敗します。一部のRuby 2.xも失敗します。私は完全にコンパイルする2.1.9p490を得た。

私が見つけたその他のアドバイスに続いて、opensslとlibssl-devの両方がインストールされていることと、最新バージョンであることが保証されています。誰が何が起こっているのか、修正する方法を教えてもらえますか?それが失敗したのはここ

だ:

compiling ossl_ssl.c 
ossl_ssl.c:116:27: error: ‘SSLv3_method’ undeclared here (not in a function) 
    OSSL_SSL_METHOD_ENTRY(SSLv3), 
         ^
ossl_ssl.c:106:69: note: in definition of macro ‘OSSL_SSL_METHOD_ENTRY’ 
#define OSSL_SSL_METHOD_ENTRY(name) { #name, (SSL_METHOD *(*)(void))name##_method } 
                    ^
ossl_ssl.c:117:27: error: ‘SSLv3_server_method’ undeclared here (not in a function) 
    OSSL_SSL_METHOD_ENTRY(SSLv3_server), 
         ^
ossl_ssl.c:106:69: note: in definition of macro ‘OSSL_SSL_METHOD_ENTRY’ 
#define OSSL_SSL_METHOD_ENTRY(name) { #name, (SSL_METHOD *(*)(void))name##_method } 
                    ^
ossl_ssl.c:118:27: error: ‘SSLv3_client_method’ undeclared here (not in a function) 
    OSSL_SSL_METHOD_ENTRY(SSLv3_client), 
         ^
ossl_ssl.c:106:69: note: in definition of macro ‘OSSL_SSL_METHOD_ENTRY’ 
#define OSSL_SSL_METHOD_ENTRY(name) { #name, (SSL_METHOD *(*)(void))name##_method } 
                    ^
ossl_ssl.c: In function ‘ossl_sslctx_session_new_cb’: 
ossl_ssl.c:382:35: warning: variable ‘ret_obj’ set but not used [-Wunused-but-set-variable] 
    VALUE ary, ssl_obj, sess_obj, ret_obj; 
           ^
ossl_ssl.c: In function ‘ossl_sslctx_session_remove_cb’: 
ossl_ssl.c:431:38: warning: variable ‘ret_obj’ set but not used [-Wunused-but-set-variable] 
    VALUE ary, sslctx_obj, sess_obj, ret_obj; 
            ^
ossl_ssl.c: In function ‘ssl_servername_cb’: 
ossl_ssl.c:508:25: warning: variable ‘ret_obj’ set but not used [-Wunused-but-set-variable] 
    VALUE ary, ssl_obj, ret_obj; 
         ^
Makefile:269: recipe for target 'ossl_ssl.o' failed 
make[2]: *** [ossl_ssl.o] Error 1 
make[2]: Leaving directory '/usr/local/src/ruby-1.9.3-p448/ext/openssl' 
exts.mk:126: recipe for target 'ext/openssl/all' failed 
make[1]: *** [ext/openssl/all] Error 2 
make[1]: Leaving directory '/usr/local/src/ruby-1.9.3-p448' 
uncommon.mk:178: recipe for target 'build-ext' failed 
make: *** [build-ext] Error 2 
!!! Compiling ruby 1.9.3-p448 failed! 

答えて

0

私はそれを掲載した直後に時間のためにこれを把握しようとしたとの答えを見つけました。うまくいけば、それは他の人を助けることでしょう

いくつかのRubyバージョンといくつかのバージョンのOpenSSLには問題がありました。修正は、インストールしようとしているRubyのバージョンのパッチを見つけることです。私は1.9.3以外の多くのバージョンのパッチを見つけました。 (とにかく試してみましたが、1.9.3をインストールしようとすると常にパッチが失敗しました。)

最後に、このディスカッションの1.9.3の正しいパッチがarchlinuxフォーラムで見つかりました。

https://gist.github.com/anonymous/679228bc324d6fdd3074

は、パッチをダウンロードし、あなたは選択のあなたのRubyのインストーラでコンパイルすると、それはそれを適用:

https://www.reddit.com/r/archlinux/comments/49bw8j/rvm_fails_to_compile_ruby_with_openssl_102g3/

の議論はここにパッチを修正するためにつながります。彼らはすべてパッチを適用するためのスイッチを持っています。

このパッチを適用すると、システムにruby-1.9.3-p551を正常にインストールできました。

関連する問題