Homebrew weigert, einen link OpenSSL
Bin ich auf: OSX 10.11.6, Homebrew version 0.9.9 m OpenSSL 0.9.8 zg 14. Juli 2015
Ich versuche zu spielen mit dotnetcore und nach Ihrer Anweisungen,
Habe ich aktualisiert/installiert die neueste version von 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
Aber wenn ich versuche den link openssl, die ich weiterhin führen Sie in diesem linking-Fehler:
> 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 include-compiler-flags nicht sinnvoll für mich, da bin ich nicht kompilieren und diese Bibliotheken zu, ich bin abhängig.
BEARBEITEN dotnetcore aktualisiert Ihre Anweisungen:
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/
Für .NET Core benötigen Sie eine unterstützte version von OpenSSL, das wäre 1.0.1 oder 1.0.2-version. Da du meldest dich ein 0.9.8 version vielleicht müssen Sie
Ich habe das schon getan. Sollte ich das geklärt haben, aber ich wusste nicht, fügen Sie diese Schritte aus, um die Frage. Aber ich habe schon die
Sieht aus wie Homebrew hat explizit blockiert: github.com/Homebrew/brew/commit/....
Und.. weiter abgerundet wird mein abschweifen, könnten Sie daran interessiert sein, was auch immer entwickelt, die auf github.com/Homebrew/brew/pull/597
"... wenn ich versuche den link openssl, die ich weiterhin führen Sie in diesem linking error:..", siehe Auch Wie die runtime-Pfad (-rpath) von einer ausführbaren Datei mit gcc unter Mac OSX?. Es kann Ihnen helfen, laden Sie immer die richtige Bibliothek zur Laufzeit, wenn die Brauen nicht hinzufügen.
brew upgrade openssl
ersten?Ich habe das schon getan. Sollte ich das geklärt haben, aber ich wusste nicht, fügen Sie diese Schritte aus, um die Frage. Aber ich habe schon die
brew update
und brew install openssl
. Dieser wird versuchen, installieren Sie die unterstützte version.Sieht aus wie Homebrew hat explizit blockiert: github.com/Homebrew/brew/commit/....
Und.. weiter abgerundet wird mein abschweifen, könnten Sie daran interessiert sein, was auch immer entwickelt, die auf github.com/Homebrew/brew/pull/597
"... wenn ich versuche den link openssl, die ich weiterhin führen Sie in diesem linking error:..", siehe Auch Wie die runtime-Pfad (-rpath) von einer ausführbaren Datei mit gcc unter Mac OSX?. Es kann Ihnen helfen, laden Sie immer die richtige Bibliothek zur Laufzeit, wenn die Brauen nicht hinzufügen.
InformationsquelleAutor daviddeath | 2016-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als update zu der anderen Antwort schon andeutet, ist der workaround der Installation der alten openssl101 Gebräu wird nicht mehr funktionieren. Für eine rechts-jetzt Problemumgehung finden Sie unter dieser Kommentar auf dotnet/cli#3964.
Den meisten relevanten Teil der Ausgabe kopiert hier:
Auch wichtig ist, es sieht aus wie Microsoft sind sich des Problems bewusst und haben beide a) eine etwas unmittelbare plan zu mildern sowie b) eine langfristige Lösung (probaby Bündelung von OpenSSL mit dotnet).
Andere Sache zu beachten:
/usr/local/opt/openssl/lib
ist, wo das Gebräu ist standardmäßig verknüpft:Wenn Sie aus irgendeinem Grund installieren Sie die brauen, und verbinden Sie es an einem anderen Ort, dann, dass der Weg ist, den Sie verwenden sollten, als ein rpath.
Sobald Sie habe das update rpath des Systems.Sicherheit.Die Kryptographie.Native.dylib geliefert, Sie müssen neu starten Ihrer interaktiven session (D. H., schließen Sie die Konsole und starten ein anderes).
Wo soll ich das hinzufügen? Ich bin versucht, diese zu arbeiten in CI. Ich bin immer ein
/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib (No such file or directory)
.das ist der Installationspfad des
dotnet
Werkzeuge. Es ist möglich, dass Sie entweder nicht installiert oder die installierte oder zu einem anderen Ort. Wenn Ihr die installiert und auf Ihrem Teil, Sie könnte verwendenwhich dotnet
zu finden.Arbeitete für mich, in meinem Fall das sdk war installiert in ein anderes Verzeichnis, so hatte ich den Pfad ändern.
Mit dotnet 1.1.0 hatte ich zu tun:
sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.0/System.Security.Cryptography.Native.OpenSsl.dylib
InformationsquelleAutor Ben Collins
Dies ist was für mich gearbeitet:
Dank @dorlandode auf diesen thread https://github.com/Homebrew/brew/pull/597
NB: ich habe nur verwendet dies als eine temporäre Lösung, bis ich verbringen konnte, die Zeit richtig der Installation von Openssl noch einmal von vorne. Als ich erinnere mich, ich verbrachte den besten Teil eines Tages Debuggen und Probleme, bevor ich realisierte, dass der beste Weg war, um manuell installieren Sie die certs, die ich brauchte. Bitte Lesen Sie den link in @bouke ' s Kommentar, bevor Sie versuchen diese.
/usr/local/bin/openssl
?Warum ist diese Antwort nicht akzeptiert, Sie haben mein Leben gerettet Mann. ::Daumen hoch::
Es gibt einen guten Grund brew ist die Weigerung, dies zu tun. Siehe auch: github.com/Homebrew/brew/pull/597.
Diese Lösung funktionierte für mich, aber ich hatte zu ändern
1.0.2j
zu1.0.2k
wegen der version Unterschiede. Also Benutzer passen, müssen Sie möglicherweise passen Sie die Pfade für die aktuelle versiones funktioniert nicht
InformationsquelleAutor rorykoehler
Keine dieser Lösungen bei mir funktioniert auf OS X El Capitan 10.11.6. Wahrscheinlich, weil OS X eine native version von openssl, der es glaubt, ist überlegen, und als solche keine wie Manipulation.
So, ich nahm die hohe Straße und begann frisch...
Manuell installieren und symbolischen Link
Wenn Sie immer "No such file or directory", machen es:
cd /usr/local && mkdir src && cd src
Download openssl:
Extrahieren und cd in:
Kompilieren und installieren:
Nun symlink OS X openssl, um Ihre neue und aktualisierte openssl:
Schließen, terminal öffnen Sie eine neue Sitzung, und stellen Sie sicher OS X ist mit dem neuen openssl:
Nachdem Sie das tun: OpenSSL-0.9.8 zh 14 Jan 2016 gebaut am: 15 Mai 2016 Plattform: darwin64-x86_64-llvm
Das erstellen einer symbolischen Verknüpfung in der folgenden Weise für mich gearbeitet:
ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl
. Nach dem Neustart des Terminal-Sitzung, gebenwhich openssl
um sicherzustellen, dass Sie die aktualisierte version 1.0.2 (/usr/local/bin/openssl
) anstatt des built-in eine (/usr/bin/openssl
).Ich folgte diesen Anweisungen, aber wenn ich in die openssl, bekomme ich (/opt/local/bin/openssl). Wie bekomme ich es /usr/local/bin/openssl?
Ich folgte dieser Anleitung (vielen Dank für die step-by-step), und er sagte immer noch 0.9.8. Vielen Dank an Olivier für die Alternative Verlinkung-Methode, die funktionierte.
InformationsquelleAutor mcgwier
Führen Sie einfach
brew info openssl
und Lesen Sie die Informationen, wo es heißt:brew info openssl
gab die gleiche hilfreiche Informationen für mich. Läuft die vorgeschlagenen Befehl oben und dann läuftsource ~/.bash_profile
oder öffnen Sie ein neues terminal gelöst für mich.ENDLICH. Dieses arbeitete auch für mich. Die anderen Antworten oben nicht!
es funktioniert nicht
oder
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
InformationsquelleAutor Alex Maiburg
, Wenn die Migration Ihren mac bricht homebrew:
Wanderte ich meinem mac, und es nicht verknüpfte alle mein homebrew installiert - einschließlich der von OpenSSL. Dieser brach
gem install
, das ist, wie ich zum ersten mal bemerkt das problem und fing an zu versuchen, diese zu reparieren.Nach einem Millionen-Lösungen (die bei der Migration auf OSX Sierra - 10.12.5), die Lösung war komisch einfach:
Legende, arbeitete für mich auch.
Und ein Jahr später, passiert mir das migrieren von meinem Mac, und dein fix funktioniert auch für mich. Vielen Dank; ich war immer auf den Punkt, zu überlegen, wischte meinen neuen Mac und tun, eine frische Installation und Einstellung alles wieder manuell.
froh, ich könnte halten Sie aus gehen über den Rand! Fast hätte ich das gleiche.
Möglicherweise müssen Sie auch diesen Ordner löschen, bevor Sie die oben.
rm -rf /usr/local/opt/openssl
InformationsquelleAutor tobybot
Nach dem Versuch alles, was ich finden konnte und nichts hat funktioniert, ich habe gerade versucht diese:
In der Datei diese Zeile Hinzugefügt.
jetzt funktioniert es 🙂
which openssl
noch Punkte/usr/bin/openssl
Damit dies funktioniert musste ich mein edit .bash_profile als auch. Aber das einzige, was funktionierte war, sagt er zu Blick in /usr/local/bin statt /usr/bin. Ich Tat dies durch hinzufügen
export PATH=/usr/local/bin:$PATH
das gleiche - es macht Arbeit
Damit dies funktioniert, müssen Sie
/usr/local/opt/openssl/bin
, ohne die/openssl
auf das Ende, auf die vor der WEG, nicht das Ende:PATH=/usr/local/opt/openssl/bin:$PATH
Mit/usr/local/opt/openssl
statt/usr/local/Cellar/openssl/$version
bedeutet, dass Sie automatisch halten die meisten up-to-date-version in Ihrem $PATH, ohne es zu ändern, jedes mal, wenn Sie aktualisieren.Nach Stunden der Stummheit dies hat den trick für mich zusammen mit @MarkReed zusätzliche Hinweise
InformationsquelleAutor Jorn
Habe ich einen ähnlichen Fall. Ich brauche zum installieren von openssl über brauen und verwenden Sie dann pip zu installieren mitmproxy. Bekomme ich die gleiche Beschwerde von
brew link --force
. Folgendes ist die Lösung, die ich erreicht: (ohne Gewalt link von brew)Diese berührt nicht die Frage unkompliziert. Ich lasse die one-liner für den Fall, jemand verwendet und pip benötigt die openssl-lib.
Hinweis: die
/usr/local/opt/openssl/lib
Pfade sind, die durchbrew info openssl
Nützlich für die Installation von
cryptography
. Mir fehlte diePKG_CONFIG_PATH
variableInformationsquelleAutor Pili Hu
Dieser arbeitete für mich:
InformationsquelleAutor edwardthesecond
Die Lösung oben von edwardthesecond funktionierte bei mir auch auf Sierra
Andere Schritte, die ich vorher gemacht habe waren:
Installation von openssl via brew
hinzufügen von openssl auf den Weg wie vorgeschlagen von homebrew
Arbeitete schön für mich, einfach übersprungen la part './configure && make'
InformationsquelleAutor Lili
Hinweis: dies funktioniert nicht mehr aufgrund https://github.com/Homebrew/brew/pull/612
Ich hatte das gleiche problem heute. Ich deinstalliert (unbrewed??) openssl 1.0.2 sowie 1.0.1 installiert auch mit homebrew. Dotnet neue/wiederherstellen/ausführen, dann fein gearbeitet.
Installieren Sie openssl 101:
brew install homebrew/Versionen/openssl101
Vernetzung:
brew link --force-homebrew/Versionen/openssl101
1.0.2 funktionierte für mich auf einem anderen mac vor ein paar Tagen, also vielleicht gibt es eine neuere brauen oder openssl ändern. Jedenfalls, für die dot-net-Kern, wir sind gut 🙂
Der github-link gepostet von @bartonjs zeigt, dass die brauen aktualisiert wurde erst vor ein paar Tagen. Blick auf den commit, der zu ändern ist`, wenn HOMEBREW_PREFIX.to_s == "/usr/local" && keg.name == "openssl"`, so dass ich vermute, dass die 1.0.1 version verwendet eine andere HOMEBREW_PREFIX.
hat bei mir nicht funktioniert, immer noch Fehler gibt
Refusing to link: openssl101 Linking keg-only openssl101 means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl101. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl101/include -L/usr/local/opt/openssl101/lib
Diese Antwort ist nicht mehr korrekt angesichts der änderung durch homebrew-devs in github.com/Homebrew/brew/pull/612
InformationsquelleAutor user3488820
für mich ist das, was funktioniert...
Ich bearbeitet ./bash_profile Hinzugefügt und unter Befehl
export PATH="/usr/local/opt/openssl/bin:$PATH"
InformationsquelleAutor sanviri