Jestem na: OSX 10.11.6, Homebrew wersja 0.9.9m OpenSSL 0.9.8zg 14 lipca 2015
Próbuję zagrać z dotnetcore i postępując zgodnie z ich instrukcjami ,
Zaktualizowałem / zainstalowałem najnowszą wersję 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
Ale kiedy próbuję połączyć openssl, nadal napotykam ten błąd łączenia:
> 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
Opcja dołączania flag kompilatora nie ma dla mnie sensu, ponieważ nie kompiluję tych bibliotek, od których jestem zależny.
EDIT dotnetcore zaktualizował swoje instrukcje:
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/
brew upgrade openssl
najpierw to zrobić ?brew update
ibrew install openssl
. Próbuję zainstalować obsługiwaną wersję.Odpowiedzi:
Jak sugeruje aktualizacja drugiej odpowiedzi, obejście instalacji starego naparu openssl101 nie będzie już działać. Aby zapoznać się z rozwiązaniem w tej chwili, zobacz ten komentarz dotyczący dotnet / cli # 3964 .
Najważniejsza część problemu skopiowana tutaj:
Co również ważne, wygląda na to, że Microsoft zdaje sobie sprawę z tego problemu i ma zarówno a) dość natychmiastowy plan złagodzenia, jak i b) rozwiązanie długoterminowe (prawdopodobnie łączenie OpenSSL z dotnet).
Kolejna rzecz, na którą należy zwrócić uwagę:
/usr/local/opt/openssl/lib
to miejsce, w którym napar jest domyślnie połączony:Jeśli z jakiegoś powodu zainstalujesz napar i połączysz go w innym miejscu, to ta ścieżka jest tą, której powinieneś użyć jako rpath.
Po zaktualizowaniu rpath biblioteki System.Security.Cryptography.Native.dylib będziesz musiał zrestartować swoją sesję interaktywną (tj. Zamknij konsolę i uruchom kolejną).
źródło
/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib (No such file or directory)
.dotnet
narzędzi. Możliwe, że nie masz go zainstalowanego lub zainstalowałeś lub w innej lokalizacji. Jeśli jest zainstalowany i z Twojej strony, możeszwhich dotnet
go znaleźć.dotnet
. Spróbuję ponownie i wrócę.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
Oto, co zadziałało dla mnie:
Dzięki @dorlandode w tym wątku https://github.com/Homebrew/brew/pull/597
Uwaga: użyłem tego tylko jako tymczasowej poprawki, dopóki nie mogłem spędzić czasu na poprawnej instalacji Openssl od nowa. Jak pamiętam, większość dnia spędziłem na debugowaniu i rozwiązywaniu problemów, zanim zdałem sobie sprawę, że najlepszym sposobem jest ręczne zainstalowanie potrzebnych certyfikatów jeden po drugim. Przeczytaj link w komentarzu @ bouke, zanim spróbujesz.
źródło
/usr/local/bin/openssl
?1.0.2j
na z1.0.2k
powodu różnic w wersjach. Dlatego użytkownicy uważajcie, może być konieczne dostosowanie ścieżek dla bieżącej wersjiln -s -f /usr/local/Cellar/openssl/1.0.2k/bin/openssl /usr/local/bin/openssl
to naprawiaŻadne z tych rozwiązań nie działało dla mnie w systemie OS X El Capitan 10.11.6. Prawdopodobnie dlatego, że OS X ma natywną wersję openssl, która uważa, że jest lepsza i jako taka nie lubi manipulować.
Więc wybrałem drogę i zacząłem od nowa ...
Zainstaluj ręcznie i łącze symboliczne
Jeśli otrzymujesz komunikat „Nie ma takiego pliku lub katalogu”, zrób to:
cd /usr/local && mkdir src && cd src
Pobierz openssl:
Wypakuj i cd w:
Skompiluj i zainstaluj:
Teraz łącze symboliczne openssl systemu OS X do nowego i zaktualizowanego pliku openssl:
Zamknij terminal, otwórz nową sesję i sprawdź, czy OS X używa nowego openssl:
źródło
ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl
. Po ponownym uruchomieniu sesji terminala wpisz,which openssl
aby upewnić się, że używasz zaktualizowanej wersji 1.0.2 (/usr/local/bin/openssl
) zamiast wbudowanej (/usr/bin/openssl
).Po prostu wykonaj
brew info openssl
i przeczytaj informacje, w których jest napisane:źródło
brew info openssl
podał mi te same pomocne informacje. Uruchomienie sugerowanego polecenia powyżej, a następnie uruchomieniesource ~/.bash_profile
lub otwarcie nowego terminala rozwiązało to za mnie.echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
Jeśli migracja Maca zepsuje Homebrew:
Przeprowadziłem migrację mojego Maca i rozłączyłem wszystkie moje instalacje homebrew - w tym OpenSSL. To się zepsuło
gem install
, więc pierwszy raz zauważyłem problem i zacząłem próbować go naprawić.Po milionie rozwiązań (podczas migracji na OSX Sierra - 10.12.5), rozwiązanie okazało się komicznie proste:
źródło
rm -rf /usr/local/opt/openssl
Po wypróbowaniu wszystkiego, co mogłem znaleźć i nic nie działało, po prostu spróbowałem tego:
Wewnątrz pliku dodano tę linię.
teraz działa :)
źródło
which openssl
nadal wskazuje/usr/bin/openssl
export PATH=/usr/local/bin:$PATH
/usr/local/opt/openssl/bin
, bez/openssl
na końcu do przodu ścieżki, nie do końca:PATH=/usr/local/opt/openssl/bin:$PATH
Korzystanie/usr/local/opt/openssl
zamiast/usr/local/Cellar/openssl/$version
środków będziesz automatycznie zachować najbardziej up-to-date wersji w $ PATH bez konieczności zmieniać go przy każdym uaktualnieniu.Mam podobny przypadek. Muszę zainstalować openssl przez brew, a następnie użyć pip, aby zainstalować mitmproxy. Otrzymuję tę samą skargę od
brew link --force
. Oto rozwiązanie, które osiągnąłem: (bez połączenia siły przez napar)Nie rozwiązuje to bezpośrednio pytania. Zostawiam jedną linijkę na wypadek, gdyby ktoś użył pip i potrzebuje biblioteki openssl.
Uwaga:
/usr/local/opt/openssl/lib
ścieżki są uzyskiwane przezbrew info openssl
źródło
cryptography
. Brakowało miPKG_CONFIG_PATH
zmiennejTo zadziałało dla mnie:
źródło
Powyższe rozwiązanie z Edwardthesecond działało również dla mnie na Sierra
Inne kroki, które zrobiłem wcześniej, to:
instalowanie openssl przez brew
dodanie openssl do ścieżki zgodnie z sugestią homebrew
źródło
Uwaga: to już nie działa z powodu https://github.com/Homebrew/brew/pull/612
Miałem dzisiaj ten sam problem. Odinstalowałem (unbrewed ??) openssl 1.0.2 i zainstalowałem 1.0.1 także z homebrew. Dotnet new / restore / run, a następnie działało dobrze.
Zainstaluj openssl 101:
brew zainstaluj homebrew / wersje / openssl101
Linking:
brew link --force homebrew / wersje / openssl101
źródło
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
Miałem ten sam problem podczas próby instalacji nowszej wersji Ruby 2.6.5 https://github.com/kelaberetiv/TagUI/issues/86 pomaga mi rozwiązać problem. Dotyczy to systemu macOS Catalina w wersji 10.15.1
Zasadniczo zrobiłem
update and upgrade
homebrew, zainstalowałem openssl i zainstalowałem ruby.Następnie utwórz te 2 linki symboliczne
następnie zainstalowałem Ruby 2.6.5
źródło
Domyślnie homebrew dał mi OpenSSL w wersji 1.1 i zamiast tego szukałem wersji 1.0. To zadziałało dla mnie.
Aby zainstalować wersję 1.0:
Następnie próbowałem utworzyć przez to łącze symboliczne, ale spowodowało to następujący błąd:
Wreszcie połączono openssl, aby wskazać wersję 1.0 za pomocą polecenia przełącznika zaparzania:
źródło
dla mnie to zadziałało ...
Edytowałem ./bash_profile i dodałem poniższe polecenie
export PATH = "/ usr / local / opt / openssl / bin: $ PATH"
źródło
pracuje dla mnie
i myślę, że może rozwiązać wszystkie problemy, takie jak
Failed to connect to raw.githubusercontent.com port 443: Connection refused
źródło