2015-10-06 16 views
16

Quando eseguo: rvmsudo passenger-install-nginx-module sul mio Mac di installare nginx, le stampe dei terminali:Nginx non riesce a trovare OpenSSL Sviluppo intestazioni

Checking for OpenSSL development headers... 
    Found: no 

ma sono certo che ho installato OpenSSL. which openssl restituisce /usr/local/openssl/bin/openssl e /usr/local/openssl/bin: è la prima voce nel mio $ PATH. Le mie domande sono:

  • Le intestazioni di sviluppo di OpenSSL sono incluse nella normale installazione di openssl tramite homebrew?
  • Se non lo sono, da dove dovrei scaricarli?
+0

Stack Overflow è un sito per domande di programmazione e sviluppo. Questa domanda sembra essere fuori tema perché non riguarda la programmazione o lo sviluppo. Vedi [Quali argomenti posso chiedere qui] (http://stackoverflow.com/help/on-topic) nel Centro assistenza. Forse [Super User] (http://superuser.com/) o [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sarebbe un posto migliore dove chiedere. Vedi anche [Dove posso pubblicare domande su Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

+0

Per rispondere alle vostre domande ... (1) No, i pacchetti di sviluppo non vengono solitamente installati con le utilità. (2) La tua distribuzione normalmente li fornisce tramite un pacchetto ['libssl-dev'] (https://packages.debian.org/squeeze/libssl-dev) o' libssl-devel'. Probabilmente dovresti chiedere informazioni sulla gestione dei pacchetti Homebrew su un altro forum, come [Super User] (http://superuser.com/) o [Apple Stack Exchange] (http://apple.stackexchange.com/). – jww

+0

Sto votando per chiudere questa domanda come off-topic perché questa domanda è ridondante con http://superuser.com/questions/982960/nginx-cannot-find-openssl-development-headers, che è stata risolta dall'OP – UmNyobe

risposta

35

Se brew link openssl --force ti dà questo messaggio:

Attenzione: Rifiutando di link: openssl Il collegamento a openssl keg-only significa che potresti finire il collegamento con l'insicuro sistema OpenSSL deprecato mentre usi le intestazioni da openssl di Homebrew. Passare invece la piena inclusione/percorsi di libreria per il compilatore ad esempio: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

Prova questo:

$ brew doctor (now fix anything that it tells you to fix) 
$ brew update 
$ brew upgrade 

Ora diamo installarlo:

$ brew install openssl 

E ora ci colleghiamo in nostro area pubblica in modo da non dover calcolare la variabile di ambiente magica da impostare durante la creazione della libreria preferita con supporto OpenSSL:

Tutto fatto! Enjoy

+2

Questa dovrebbe essere la risposta! : D –

+2

La risposta accettata non è aggiornata. –

18

Se si è su Mac OS X El Capitan, Apple non include openssl più a causa di problemi di sicurezza che ha avuto openssl, ho problemi simili nell'installazione di Passenger. brew installa semplicemente openssl senza intestazioni di sviluppo.

Se siete su una versione precedente di Mac OS X di El Capitan, è possibile utilizzare: xcode-select --install che installa header di sviluppo openssl pure.

EDIT:

Aggiornamento birra e l'installazione di OpenSSL e la forza che collega openssl alla versione brew risolto il mio problema:

$ brew update 
$ which openssl 
/usr/bin/openssl 
$ brew install openssl 
$ brew link openssl --force 
$ which openssl 
/usr/local/bin/openssl 
+1

Ho provato a disinstallare con homebrew quindi a reinstallare in modo che il terminale punti a/usr/local/bin/openssl. Ma ho ancora le intestazioni di sviluppo contrassegnate come mancanti. Qualche altro suggerimento? –

+1

il collegamento brew openssl - ha risolto anche il mio problema – Kirk

+1

Se brew link openssl --force non funziona più, prova questo link. https://solitum.net/openssl-os-x-el-capitan-and-brew/ Ha funzionato per me. – Nic128