2016-10-20 12 views
1

Ich habe einen funktionierenden Entwicklungscomputer auf Sierra aufgerüstet und kann ihn nicht mehr mit Capistrano bereitstellen.OpenSSL Seg Fault nach dem Upgrade auf Sierra - ruby ​​1.8.7

es auf der Spur ist das Problem mit einem Aufruf an

OpenSSL::PKey::RSA.new 

Dies führt zu

/Users/programmer1/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/irb.rb:310: [BUG] Segmentation fault 
ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin16.0.0] 

habe ich eine anderen Mac, die auch nach Sierra aktualisiert, aber es ist in Ordnung.

Ich habe Ruby, mit Rvm, gegen Openssl v0.9.8zg gebaut.

rvm reinstall 1.8.7-p374 --autolibs=0 --with-openssl=~/builds/openssl-0.9.8zg 

Wenn ich rvm rubin gegen System bauen installiert Openssl ich Capistrano verwenden können, aber Authlogic schlägt fehl, wenn ein Benutzer-Logins in die Ruby on Rails-Anwendung mit einer Reihe Fehler bei SSL.

Wenn ich rvm's Ruby gegen OpenSSL v0.9.8zg bilde, funktioniert Authlogic korrekt, aber Capistrano seg Fehler beim Verbinden mit dem Remote-Server.

Ich habe versucht, DYLD_LIBRARY_PATH zu dem lokal gebauten OpenSSL v0.9.8 vor der Ausführung von Capistrano, aber es immer noch Core-Dumps.

Ruby on Rails 2.3.18 (ältere Anwendung). Ruby 1.8.7-p374 OS X Sierra

Bin aus Ideen jetzt, wie Sie damit fortfahren.

Update:

otool -L /Users/programmer1/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/i686-darwin16.0.0/openssl.bundle 

/Users/programmer1/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/i686-darwin16.0.0/openssl.bundle: 
/Users/programmer1/.rvm/rubies/ruby-1.8.7-p374/lib/libruby.dylib (compatibility version 1.8.0, current version 1.8.7) 
/opt/local/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) 
/opt/local/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0) 
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) 

zeigt, dass Rubin immer libssl1.0.0 mit und nie 0.9.7

Wie kann ich rvm sagen gegen 0.9.7 von SSL zu verbinden bitte?

Antwort

0

Ich posten eine Lösung für mein eigenes Problem mehr als eine Notiz für mich selbst und für alle anderen, die dieses Problem in der Zukunft haben.

Es scheint, dass Openssl (0.9.8) für die 32-Bit nicht 64.

kompiliert wurde I OpenSSL konfiguriert:

./config darwin64-x86_64-cc shared enable-ec_nistp_64_gcc_128 no-ssl2 no-ssl3 no-comp --openssldir=/usr/local/ssl/macos-x86_64 

über

dann wieder installiert ruby1.8.7 (https://wiki.openssl.org/index.php/Compilation_and_Installation#OS_X sehen) rvm

rvm reinstall 1.8.7-p374 --autolibs=0 --with-openssl --with-opt-dir=/usr/local/ssl/macos-x86_64 

Überprüfung der geladenen Version

otool -L /Users/programmer1/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/1.8/i686-darwin16.0.0/openssl.bundle 
Verwandte Themen