2016-07-19 12 views
5

MacPortsとMicrosoftのDotNet coreを使用してMacにDotNetをインストールします。彼らのサイトは自作からOpenSSLをインストールするには、こう述べています。MacPorts DotNetをインストールするためのOpenSSL強制リンク

brew update 
brew install openssl 
brew link --force openssl 

私はOpenSSLがMacPortsを経由してインストールされている:

ports install openssl 

「を醸造リンク--forceのOpenSSLを」んん、そしてどのように私は同じことを実現することができますどのようなMacPortsを使っているもの?

ありがとうございます!

+0

をだから私が正しく理解していれば、あなたは関数が別のパッケージマネージャにあるかわからないコマンドを実装したいことそれは意図されていないのですか?それは良い考えだとは思わない。 –

+1

.NETコアの文脈で質問されたので、私はOPが必然的に "リンク"コマンドをMacPortsに実装するとは思っていませんが、コマンドが何をしていても再作成したいと考えています。具体的には、そのコマンドに相当するものがないと、.NET CoreはOpenSSL(0.9.8something)のOS Xバージョンを検出しますが、MacPortsバージョン(1.0.2something)は検出せずクラッシュします。 –

+0

'brew link'は、'/usr/local'のopensslの式によってインストールされたファイルのシンボリックリンクを作成します。 Homebrewは通常、 '/ usr/local/Cellar'の下にあるフォルダにのみファイルをインストールします。 – neverpanic

答えて

4

.NETコアのissue 173には、この特定の問題の解決策が見つかりましたが、より一般的な解決策は見つかりませんでした。簡単に言えば、あなたは/usr/local/liblibcrypto.dyliblibssl.dylibのMacPortsのバージョンをリンクする必要があります。

sudo ln -s /opt/local/lib/libcrypto.1.0.0.dylib /usr/local/lib/libcrypto.1.0.0.dylib 
sudo ln -s /opt/local/lib/libssl.1.0.0.dylib /usr/local/lib/libssl.1.0.0.dylib 
+2

あなたはそうしてはいけません。代わりに '/ opt/local/lib'にライブラリを見つけるために' DYLD_FALLBACK_LIBRARY_PATH =/opt/local/lib'をエクスポートするか、/ usr/local/libのライブラリを参照するドットネットバイナリで 'install_name_tool- local/lib'を実行してパスを '/ opt/local/lib'に変更します。 – neverpanic

+0

少なくとも、 'sudo install_name_tool -change libcrypto.1.0.0.dylib /opt/local/lib/libcrypto.1.0.0.dylib/usr/local/share/dotnet/dotnet'(そしてlibsslの場合は、私のためにやるべきことはありません。ドットネットは以前と同じように 'System.Security.Cryptography.Native'の' DllNotFoundException'をスローします。 –

+0

libsslとlibcryptoのライブラリを参照する別のライブラリがあるかもしれません。あるいは、dlopenを使用して実際に実行時にライブラリを開こうとするかもしれません。私の知っているドットネットは残念ながらあまりにも限定されています。 – neverpanic

関連する問題