当我在Mac上运行:rvmsudo passenger-install-nginx-module
以安装nginx时,终端会打印:
Checking for OpenSSL development headers...
Found: no
但我确定我已经安装了openssl。 which openssl
返回/usr/local/openssl/bin/openssl
,/usr/local/openssl/bin:
是$ PATH中的第一个条目。我的问题是:
答案 0 :(得分:53)
如果brew link openssl --force
给您这条消息:
警告:拒绝链接:openssl链接keg-only openssl意味着您可能会在使用Homebrew的openssl标题时最终链接到不安全,已弃用的系统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 .
全部完成!享受
答案 1 :(得分:18)
如果您使用的是Mac OS X El Capitan,由于openssl存在安全问题,Apple不再包含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