[解決済み] HomebrewがOpenSSLをリンクするのを拒否する
質問
私が乗っているのは OSX 10.11.6, Homebrew バージョン 0.9.9m OpenSSL 0.9.8zg 2015年7月14日
dotnetcoreで遊ぼうとしているのですが、彼らの言うとおり 指示 ,
opensslの最新版をアップグレード/インストールしました。
> brew install openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
Already downloaded: /Users/administrator/Library/Caches/Homebrew/openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Pouring openssl-1.0.2h_1.el_capitan.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local.
Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
しかし、opensslをリンクしようとすると、このリンクエラーに遭遇し続けるのです。
> brew link --force openssl
Warning: Refusing to link: openssl
Linking keg-only OpenSSL means you may end up linking against the insecure,
deprecated system version while using the headers from the Homebrew version.
Instead, pass the full include/library paths to your compiler e.g.:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
コンパイラーフラグを含めるというオプションは、私が依存しているこれらのライブラリをコンパイルしないので、私には意味がありません。
EDIT dotnetcoreが説明書を更新しました。
brew update
brew install openssl
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
解決方法は?
他の回答の更新にあるように、古いopenssl101のbrewをインストールする回避策はもう通用しません。 今すぐできる回避策は、以下を参照してください。 dotnet/cli#3964 に対するこのコメント .
この問題の最も関連性の高い部分はここにコピーされています。
<ブロッククオートライブラリにrpathを設定するために提案された他のオプションについて調べました。私は、以下の方法が、この特定のライブラリにのみ影響する、より良い解決策だと思います。
sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib
NETCore 1.0.1がインストールされている場合は、1.0.1でも同じコマンドを実行します。
sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Security.Cryptography.Native.dylib
事実上、オペレーティングシステムに常にSSLの自作バージョンを使うように指示し、何かを壊す可能性があるのではなく、dotnetに正しいライブラリを見つける方法を指示しているのです。
また、重要なのは、マイクロソフトがこの問題を認識していて、a)ある程度即時の緩和策と、b)長期的な解決策(おそらくOpenSSLをdotnetにバンドル)の両方を持っているように見えるということです。
もうひとつ、注意点があります。
/usr/local/opt/openssl/lib
は、デフォルトでbrewがリンクされる場所です。
13:22 $ ls -l /usr/local/opt/openssl
lrwxr-xr-x 1 ben admin 26 May 15 14:22 /usr/local/opt/openssl -> ../Cellar/openssl/1.0.2h_1
何らかの理由でbrewをインストールし、別の場所にリンクした場合、そのパスがrpathとして使用されるべきものです。
System.Security.Cryptography.Native.dylib libray の rpath を更新したら、対話型セッションを再起動する必要があります (つまり、コンソールを終了して別のセッションを開始します)。
関連
-
[解決済み】OS X Framework Library not loaded: 'Image not found'.
-
[解決済み] Postgresのユーザが存在しない?
-
[解決済み] そのような keg はありません: /usr/local/Cellar/git
-
[解決済み] SSH -L 接続は成功したが、localhost のポート転送が機能しない "channel 3: open failed: connect failed: 接続が拒否されました"
-
[解決済み] USBデバイス SEGGER J-Link [0100] の仮想マシン WINDOWS 7 への取り付けに失敗しました [終了しました]。
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み] homebrewのパーミッションを修正する方法は?
-
[解決済み] Mac OS XでのMavenのインストール
-
[解決済み] Brew doctorは、「警告。/usr/local/include is not writable." と表示されました。
-
[解決済み】Homebrewは特定のバージョンのformulaをインストールしますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ローカルでドッカーイメージが見つからない
-
[解決済み] Macで実行するとDockerコマンドが見つからない
-
[解決済み] 警告: テンプレートが見つかりませんでした /usr/local/git/share/git-core/templates
-
[解決済み] Bashのエイリアス:コマンドが見つかりません
-
[解決済み] rootでrsyncを実行中。操作は許可されていません
-
[解決済み] MacVimと通常のVimの違いは何ですか?
-
[解決済み] .ssh/config: "不正な設定オプションです。Mac OS Sierra 10.12.6 で "UseKeychain" が表示される。
-
[解決済み] なぜ `source ~/.profile` を使い続けないと設定ができないのですか?
-
[解決済み] .git/index.lock' を削除してください。パーミッションが拒否されました。
-
[解決済み] Macでvscodeを完全にアンインストールする方法