2015-10-06 2 views
16

Когда я бегу: rvmsudo passenger-install-nginx-module на моем Mac установить Nginx, терминал печатает:Nginx не удается найти OpenSSL развития заголовков

Checking for OpenSSL development headers... 
    Found: no 

Но я уверен, что я установил OpenSSL. which openssl возвращает /usr/local/openssl/bin/openssl и /usr/local/openssl/bin: - это первая запись в моей $ PATH. Мои вопросы:

  • Являются ли заголовки разработки OpenSSL включенными в обычную версию opensl через homebrew?
  • Если это не так, откуда их загрузить?
+0

Stack Overflow - это сайт для вопросов программирования и развития. Этот вопрос кажется вне темы, потому что речь идет не о программировании или разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, лучше сказать [Суперпользователь] (http://superuser.com/) или [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/). Также см. [Где я пишу вопросы о Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

+0

Чтобы ответить на ваши вопросы ... (1) Нет, пакеты разработки обычно не устанавливаются вместе с утилитами. (2) Ваш дистрибутив обычно предоставляет их с помощью пакета ['libssl-dev'] (https://packages.debian.org/squeeze/libssl-dev) или' libssl-devel'. Вероятно, вы должны спросить об управлении пакетом Homebrew на другом форуме, например [Super User] (http://superuser.com/) или [Apple Stack Exchange] (http://apple.stackexchange.com/). – jww

+0

Я голосую, чтобы закрыть этот вопрос не по теме, потому что этот вопрос избыточен с http://superuser.com/questions/982960/nginx-cannot-find-openssl-development-headers, который был решен OP – UmNyobe

ответ

35

Если brew link openssl --force дает это сообщение:

Предупреждение: Отказываясь link: openssl Связывание keg-only openssl означает, что вы можете связать себя с небезопасной, устаревшей системой OpenSSL, используя заголовки opensl от Homebrew. Вместо этого, пройти полный включать/библиотечные пути к вашему компилятору, например: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

Попробуйте это:

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

Теперь давайте установим его:

$ brew install openssl 

И теперь мы свяжем его в нашем чтобы вам не приходилось определять переменную волшебной среды для установки при создании вашей любимой библиотеки, поддерживаемой OpenSSL:

$ cd /usr/local/include 
$ ln -s ../opt/openssl/include/openssl . 

Все сделано! Наслаждайтесь

+2

Это должен быть ответ! : D –

+2

Принятый ответ является устаревшим. –

18

Если вы находитесь на Mac OS X El Capitan, Apple больше не включает openssl из-за проблем с безопасностью. У меня есть аналогичная проблема с установкой Passenger. пиво просто устанавливает сам openssl без заголовков разработки.

Если вы находитесь на старой версии Mac OS X, чем El Capitan, вы можете использовать: xcode-select --install , который устанавливает заголовки развития OpenSSL, а также.

EDIT:

Обновление заваривать и установка OpenSSL и сила связывания OpenSSL, чтобы заварить версии решить мою проблему:

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

Я попытался удалить с помощью homebrew, а затем переустановить, чтобы терминал указывал на/usr/local/bin/openssl. Но у меня все еще есть заголовки разработчиков, отмеченные как отсутствующие. Любые другие предложения? –

+1

ссылка на смазку openssl --force тоже решила мою проблему – Kirk

+1

Если ссылка на смазку openssl --force больше не работает, попробуйте эту ссылку. https://solitum.net/openssl-os-x-el-capitan-and-brew/ Работал для меня. – Nic128

Смежные вопросы