Nginx 找不到 OpenSSL 开发Headers
Nginx Cannot Find OpenSSL Development Headers
当我运行:rvmsudo passenger-install-nginx-module
在我的Mac上安装nginx时,终端打印:
Checking for OpenSSL development headers...
Found: no
但我确定我已经安装了 openssl。 which openssl
returns /usr/local/openssl/bin/openssl
和 /usr/local/openssl/bin:
是我的 $PATH 中的第一个条目。我的问题是:
- OpenSSL 开发 headers 是否包含在通过自制软件安装的常规 openssl 中?
- 如果没有,我应该从哪里下载?
如果你在 Mac OS X El Capitan,Apple 不再包含 openssl,因为 openssl 存在安全问题,我在安装 Passenger 时遇到了类似的问题。 brew 只安装 openssl 本身,没有开发头文件。
如果您使用的 Mac OS X 版本比 El Capitan 旧,您可以使用:
xcode-select --install
它也安装 openssl 开发头文件。
编辑:
更新 brew 并安装 openssl 并强制将 openssl 链接到 brew 版本解决了我的问题:
$ brew update
$ which openssl
/usr/bin/openssl
$ brew install openssl
$ brew link openssl --force
$ which openssl
/usr/local/bin/openssl
如果 brew link openssl --force
给你这条消息:
警告:拒绝 link:openssl 链接 keg-only openssl 意味着您可能最终 link 在使用 headers 来自自制软件的 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
现在我们将 link 它放入我们的 public 区域,这样您在构建您最喜欢的 OpenSSL-backed 库时就不必弄清楚要设置的神奇环境变量:
$ cd /usr/local/include
$ ln -s ../opt/openssl/include/openssl .
大功告成!享受
当我运行:rvmsudo passenger-install-nginx-module
在我的Mac上安装nginx时,终端打印:
Checking for OpenSSL development headers...
Found: no
但我确定我已经安装了 openssl。 which openssl
returns /usr/local/openssl/bin/openssl
和 /usr/local/openssl/bin:
是我的 $PATH 中的第一个条目。我的问题是:
- OpenSSL 开发 headers 是否包含在通过自制软件安装的常规 openssl 中?
- 如果没有,我应该从哪里下载?
如果你在 Mac OS X El Capitan,Apple 不再包含 openssl,因为 openssl 存在安全问题,我在安装 Passenger 时遇到了类似的问题。 brew 只安装 openssl 本身,没有开发头文件。
如果您使用的 Mac OS X 版本比 El Capitan 旧,您可以使用:
xcode-select --install
它也安装 openssl 开发头文件。
编辑:
更新 brew 并安装 openssl 并强制将 openssl 链接到 brew 版本解决了我的问题:
$ brew update
$ which openssl
/usr/bin/openssl
$ brew install openssl
$ brew link openssl --force
$ which openssl
/usr/local/bin/openssl
如果 brew link openssl --force
给你这条消息:
警告:拒绝 link:openssl 链接 keg-only openssl 意味着您可能最终 link 在使用 headers 来自自制软件的 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
现在我们将 link 它放入我们的 public 区域,这样您在构建您最喜欢的 OpenSSL-backed 库时就不必弄清楚要设置的神奇环境变量:
$ cd /usr/local/include
$ ln -s ../opt/openssl/include/openssl .
大功告成!享受