2016-12-18 1 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을 설치할 때 항상 패치가 실패했습니다.)

마지막으로 archlinux 포럼에서이 토론의 1.9.3에 적합한 패치를 찾았습니다.

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

패치를 다운로드하고 당신은 선택의 루비 설치 프로그램으로 컴파일로 다음 그것을 적용

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

토론은 여기에 패치를 해결하기 이어집니다. 그들은 모두 패치를 적용하기위한 스위치를 가지고 있습니다.

이 패치를 설치하면 내 시스템에 ruby-1.9.3-p551을 성공적으로 설치할 수있었습니다.