2013-08-21 19 views
8

Otrzymałem "certificate verify failed (OpenSSL::SSL::SSLError)" w mojej aplikacji Ruby i zdecydowałem, że nadszedł czas na aktualizację starego openssl na moim systemie Mac OS X (Mountain Lion).Instalacja openssl na OS X

Złapałam najnowsze źródła z here i zrobił zwykły

  • ./configure darwin64-x86_64-cc
  • zrobić
  • make test
  • sudo make install

... i wszystko ukończone bez widocznego błędu. Ale widzę, że nowa openssl nie zastąpiła starą OpenSSL:

$ 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 

jestem niezdecydowany, żeby poeksperymentować z ważnych plików systemowych z obawy zerwania istniejących rzeczy. Jakie jest zalecane podejście? Zastanawiam się nad zastąpieniem/usr/bin/openssl dowiązaniem symbolicznym do wersji/usr/local/ssl/bin. Czy to działa?

+0

Sprawdź rozwiązanie, którego użyłem tutaj> https://stackoverflow.com/a/46179272/844890 – shaunthomas999

Odpowiedz

9

priorytet swoją lokalną kopię całego systemu kopiowania trzeba go dodać do zmiennej PATH powłoki

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

Jeśli chcesz to wykonać przy każdym uruchomieniu powłoki wystarczy dodać go do swojej bash_profile w Twój katalog domowy.

Jednak to nie rozwiąże problemu, ponieważ Ruby musiałaby zostać przekompilowana w stosunku do nowej wersji OpenSSL (zakładamy, że zaktualizowany główny plik certyfikatów dołączony do nowej wersji OpenSSL spowoduje hipotetyczne rozwiązanie tego problemu). Polecam zainstalowanie rvm lub rbenv i odbudowanie ruby. Zauważ, że oba te narzędzia wolałyby zainstalować openssl przez homebrew.

+1

To mi wystarczy. FWIW, mam własne skrypty budujące, które umieszczają wszystkie pliki wykonywalne ruby ​​i biblioteki w piaskownicy i (jako punkt filozoficzny) nigdy nie dotykają plików systemowych, ani nie wymaga sudo. Myślę, że to moja własna wersja rvm. –