web-dev-qa-db-ja.com

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開発ヘッダーは、homebrewを介した通常のopensslインストールに含まれていますか?
  • そうでない場合、どこからダウンロードすればよいですか?
17
Ethan Keller

brew link openssl --forceは次のメッセージを表示します。

警告:リンクの拒否:openssl kegのみのopensslをリンクすると、Homebrewのopensslのヘッダーを使用しているときに、安全ではなく非推奨のシステムOpenSSLにリンクすることになります。代わりに、完全なインクルード/ライブラリパスをコンパイラに渡します。例:-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 .

全部できた!楽しい

54
A H K

Mac OS X El Capitanを使用している場合、Appleにopensslが含まれなくなりました。Passengerのインストールでも同様の問題があります。

El Capitanより古いバージョンのMac OS Xを使用している場合は、次を使用できます。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
18
mani_007