Ich bin auf: OSX 10.11.6, Homebrew-Version 0.9.9m OpenSSL 0.9.8zg 14. Juli 2015
Ich versuche mit dotnetcore zu spielen und deren Anweisungen zu befolgen ,
Ich habe die neueste Version von openssl aktualisiert/installiert:
> 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
Aber wenn ich versuche, openssl zu verknüpfen, stoße ich weiterhin auf diesen Verbindungsfehler:
> 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
Die Option zum Einschließen von Compiler-Flags ist für mich nicht sinnvoll, da ich diese Bibliotheken nicht kompiliere, von denen ich abhängig bin.
EDIT dotnetcore hat seine Anweisungen aktualisiert:
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/
Wie aus dem Update für die andere Antwort bereits hervorgeht, funktioniert die Installation des alten openssl101-Suds nicht mehr. Für eine sofortige Problemumgehung siehe diesen Kommentar zu dotnet/cli # 3964 .
Der relevanteste Teil der Ausgabe wurde hier kopiert:
Ich habe nach der anderen Option gesucht, die vorgeschlagen wurde, um den Pfad in der Bibliothek festzulegen. Ich denke, das Folgende ist eine bessere Lösung, die nur diese spezifische Bibliothek betrifft.
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
und/oder wenn Sie NETCore 1.0.1 installiert haben, führen Sie denselben Befehl auch für 1.0.1 aus:
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
Anstatt dem Betriebssystem mitzuteilen, dass es immer die homebrew-Version von SSL verwenden soll, was zu einem Bruch führen kann, teilen wir dotnet mit, wie die richtige Bibliothek zu finden ist.
Es scheint auch so, als ob Microsoft sich des Problems bewusst ist und sowohl a) einen etwas unmittelbaren Plan zur Abmilderung als auch b) eine langfristige Lösung hat (Probaby-Bündelung von OpenSSL mit Dotnet).
Eine andere Sache, die Sie beachten sollten: /usr/local/opt/openssl/lib
ist, wo das Gebräu standardmäßig verlinkt ist:
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
Wenn Sie das Gebräu aus irgendeinem Grund installieren und an einen anderen Ort verlinken, sollten Sie diesen Pfad als Pfad verwenden.
Nachdem Sie den R-Pfad der Bibliothek "System.Security.Cryptography.Native.dylib" aktualisiert haben, müssen Sie die interaktive Sitzung erneut starten (d. H. Die Konsole schließen und eine andere Sitzung starten).
Das hat bei mir funktioniert:
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/
ln -s /usr/local/Cellar/openssl/1.0.2j/bin/openssl /usr/local/bin/openssl
Danke an @dorlandode in diesem Thread https://github.com/Homebrew/brew/pull/597
NB: Ich habe dies nur als temporäre Lösung verwendet, bis ich Opensl wieder richtig installieren konnte. Soweit ich mich erinnere, verbrachte ich den besten Teil eines Tages mit dem Debuggen und hatte Probleme, bevor mir klar wurde, dass es am besten war, die erforderlichen Zertifikate manuell zu installieren. Bitte lesen Sie den Link in @ boukes Kommentar, bevor Sie dies versuchen.
Keine dieser Lösungen funktionierte für mich unter OS X El Capitan 10.11.6. Wahrscheinlich, weil OS X eine native Version von openssl hat, von der es glaubt, dass sie überlegen ist, und als solche keine Manipulation mag.
Also nahm ich die Straße und fing frisch an ...
cd /usr/local/src
Wenn Sie "Keine solche Datei oder ein solches Verzeichnis" erhalten, machen Sie folgendes:
cd /usr/local && mkdir src && cd src
Openssl herunterladen:
curl --remote-name https://www.openssl.org/source/openssl-1.0.2h.tar.gz
Auszug und CD in:
tar -xzvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
Kompilieren und installieren Sie:
./configure darwin64-x86_64-cc --prefix=/usr/local/openssl-1.0.2h shared
make depend
make
make install
Nun verbinden Sie OS Xs openssl mit Ihrem neuen und aktualisierten openssl:
ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl
Schließen Sie das Terminal, öffnen Sie eine neue Sitzung und stellen Sie sicher, dass OS X Ihr neues openssl verwendet:
openssl version -a
Führen Sie einfach brew info openssl
aus und lesen Sie die Informationen an der folgenden Stelle:
Wenn Sie diese Software zuerst in Ihrem PFAD benötigen, führen Sie Folgendes aus:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
Ich habe meinen Mac migriert, und er hat die Verbindung zu all meiner Homebrew-Installation - einschließlich OpenSSL - getrennt. Dies brach gem install
, wodurch ich das Problem zum ersten Mal bemerkte und versuchte, es zu reparieren.
Nach einer Million Lösungen (bei der Migration zu OSX Sierra - 10.12.5) war die Lösung komisch einfach:
brew reinstall Ruby
brew reinstall openssl
Nachdem ich alles ausprobiert hatte, was ich finden konnte und nichts funktionierte, versuchte ich es einfach:
touch ~/.bash_profile; open ~/.bash_profile
In der Datei wurde diese Zeile hinzugefügt.
export PATH="$PATH:/usr/local/Cellar/openssl/1.0.2j/bin/openssl"
jetzt gehts :)
Jorns-iMac:~ jorn$ openssl version -a
OpenSSL 1.0.2j 26 Sep 2016
built on: reproducible build, date unspecified
//blah blah
OPENSSLDIR: "/usr/local/etc/openssl"
Jorns-iMac:~ jorn$ which openssl
/usr/local/opt/openssl/bin/openssl
Ich habe einen ähnlichen Fall. Ich muss openssl via brew installieren und dann pip verwenden, um mitmproxy zu installieren. Ich bekomme dieselbe Beschwerde von brew link --force
. Im Folgenden ist die Lösung, die ich erreicht habe: (ohne Kraftverbindung durch Brühen)
LDFLAGS=-L/usr/local/opt/openssl/lib
CPPFLAGS=-I/usr/local/opt/openssl/include
PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
pip install mitmproxy
Die Frage wird nicht direkt beantwortet. Ich verlasse den One-Liner, falls jemand pip verwendet und die openssl-lib benötigt.
Hinweis: Die /usr/local/opt/openssl/lib
-Pfade werden durch brew info openssl
abgerufen.
Das hat für mich funktioniert:
brew install openssl
cd /usr/local/include
ln -s ../opt/openssl/include/openssl .
Die obige Lösung von edwardthesecond hat auch bei Sierra funktioniert
brew install openssl
cd /usr/local/include
ln -s ../opt/openssl/include/openssl
./configure && make
Andere Schritte, die ich vorher gemacht habe, waren:
installiere openssl via brew
brew install openssl
hinzufügen von openssl zum Pfad, wie von homebrew vorgeschlagen
brew info openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
Hinweis: Dies funktioniert nicht mehr aufgrund von https://github.com/Homebrew/brew/pull/612
Ich hatte heute das gleiche Problem. Ich habe openssl 1.0.2 deinstalliert (unbrewed ??) und 1.0.1 auch mit Homebrew installiert. Dotnet new/restore/run funktionierte dann einwandfrei.
Installiere openssl 101:
brew install homebrew/versions/openssl101
Verknüpfung:
brew link --force homebrew/versions/openssl101
für mich hat das funktioniert ...
Ich habe das ./bash_profile bearbeitet und den folgenden Befehl hinzugefügt
export PATH = "/ usr/local/opt/openssl/bin: $ PATH"