Jak zainstalować libssl-dev, libffi-dev na Mac OS?


18

Mogę zainstalować libssl-devi libffi-devna Ubuntu za pomocą polecenia apt-get install libssl-dev libffi-dev, ale nie mogę zainstalować na komputerze Mac; Próbowałem użyć polecenia: brew install libssl-dev libffiale nie działa dla mnie.

Co muszę zrobić, aby Homebrew go zainstalowało?


Odpowiedzi:


18

Te konkretne pakiety nie istnieją pod tymi nazwami zarówno na MacPorts, jak i Homebrew - stąd otrzymywane błędy. Aby zainstalować te konkretne pakiety w OS X, będziesz chciał użyć openssl. Następujące polecenie powinno ci pomóc:

brew install openssl

Jeśli już opensslzainstalowałeś, spróbuj wykonać następujące czynności, aby go naprawić - niektórzy użytkownicy na przepełnieniu stosu zgłosili to jako poprawkę podczas próby uruchomienia Django.

brew unlink openssl && brew link openssl --force

Jak to zrobić bez naparu i bez sudo?
tommy.carstensen

2
opensslto nie to samo co libssl-dev. Pierwszy służy do bezpośredniego użycia, drugi do łączenia. UPD: ok, dla komputerów Mac są one zawarte w jednym pakiecie, ale musisz uruchomićexport LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"
Imaskar

10

Próbowałem ściągnąć Crystal z ziemi na MacOS Mojave i napotkałem podobny problem.

Oto komunikat o błędzie, który widziałem:

Error: execution of command failed with code: 1: `cc "${@}" -o '/Users/mymbp/.cache/crystal/crystal-run-server.tmp'  -rdynamic  
`command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'` `command -v pkg-config > /dev/null && pkg-config --libs
 --silence-errors libcrypto || printf %s '-lcrypto'` -lz -lpcre -lgc -lpthread 
/usr/local/Cellar/crystal/0.27.0/src/ext/libcrystal.a -levent -liconv -ldl -
L/usr/lib -L/usr/local/lib`

Szukając / usr / local / lib Zauważyłem, że nie ma wzmianki o libssl.

Więc dodałem dowiązanie symboliczne i to wydawało się naprawić.

ln -s /usr/local/Cellar/openssl/1.0.2p/lib/libssl.dylib /usr/local/lib/

Uwaga: aktualna wersja openssl, który warzy krople, to 1.0.2p, Twoja wersja może być inna.


7
Podobny problem, również z kryształem. Udało mi export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/się to uruchomić tutaj: github.com/brianmario/mysql2/issues/795#issuecomment-337006164
Jay Dorsey

2

opensslzostał już zainstalowany, ale nie mogłem go zbudować, psycopg2ponieważ narzekał na brak -lssl. Postępowałem zgodnie z instrukcjami Simona Sheehana, ale wciąż nie był dostępny.

Ale patrząc na wiadomość po wymuszonym linkowaniu openssl:

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

Zrobiłem więc to, co mówi. Dodałem te dwie linie do siebie ~/.bashrc. I psycopg2tym razem zbudowany bez błędów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.