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