Nginx не может найти заголовки разработки OpenSSL

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

Checking for OpenSSL development headers...
  Found: no

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

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

Ответы

Ответ 1

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

Предупреждение. Отказ от ссылки: openssl. Связывание keg-only openssl означает, что вы можете связать себя с небезопасной, устаревшей системой OpenSSL при использовании заголовков из Homebrew openssl. Вместо этого передайте полный путь include/library к вашему компилятору, например: -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

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

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

EDIT:

Обновление brew и установка openssl и принудительная привязка openssl к версии brew решили мою проблему:

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