2013-08-21 15 views
8

Ich bekam "certificate verify failed (OpenSSL::SSL::SSLError)" in meiner Ruby-App und entschied, dass es Zeit war, die alte OpenSSL auf meinem Mac OS X (Mountain Lion) System zu aktualisieren.installation openssl unter OS X

packte ich die neuesten Quellen aus here und hat die üblichen

  • ./Configure darwin64-x86_64-cc
  • make test
  • sudo make install machen

... und alles ohne offensichtlichen Fehler abgeschlossen. Aber ich merke, dass die neue OpenSSL die alte openssl nicht ersetzt hat:

$ which openssl 
/usr/bin/openssl 
$ /usr/bin/openssl version 
OpenSSL 0.9.8x 10 May 2012 
$ /usr/local/ssl/bin/openssl version 
OpenSSL 1.0.1e 11 Feb 2013 

Ich bin zögerlich herum zu verwirren mit wichtigen Systemdateien aus Angst vor bestehende Dinge zu brechen. Was ist der empfohlene Ansatz? Ich überlege,/usr/bin/openssl durch einen Symlink zur/usr/local/ssl/bin Version zu ersetzen. Funktioniert das?

+0

Überprüfen Sie die Lösung, die ich hier verwendet habe> https://Stackoverflow.com/a/46179272/844890 – shaunthomas999

Antwort

9

Um Ihre lokale Kopie über das System zu priorisieren kopieren Sie es zu Ihrer Shell PATH-Variable

export PATH="/usr/local/ssl/bin:$PATH" 

hinzufügen müssen Wenn Sie dies jedes Mal ausgeführt werden soll starten Sie eine Shell .bash_profile fügen Sie ihn einfach in dein Heimatverzeichnis.

Dies wird jedoch Ihr Problem nicht beheben, da Ruby mit dem neuen OpenSSL neu kompiliert werden müsste (wir nehmen an, dass die aktualisierte Stammzertifikatdatei, die mit dem neuen OpenSSL geliefert wird, dieses Problem hypothetisch beheben würde). Ich würde empfehlen, entweder rvm oder rbenv zu installieren und Ruby neu aufzubauen. Beachten Sie, dass beide Tools es vorziehen würden, openssl über homebrew zu installieren.

+1

Das ist gut genug für mich. FWIW, ich habe meine eigenen Build-Skripte, die alle Ruby-Programme und -Bibliotheken in eine Sandbox legen und (philosophisch gesehen) niemals Systemdateien berühren, noch Sudo erfordern. Es ist meine eigene Version von rvm, nehme ich an. –