Brak OpenSSL podczas ./configure. Jak naprawić?

79

Próbowałem zainstalować node.js i okazało się, że brakuje obsługi OpenSSL podczas ./configure.

Jak mogę to naprawić? Czy to obowiązkowy krok? Czy --without-sslopcja rozwiązałaby problem?

# ./configure

Checking for gcc                         : ok
Checking for library dl                  : not found
Checking for openssl                     : not found
Checking for function SSL_library_init   : not found
Checking for header openssl/crypto.h     : not found
/home/ec2-user/node-v0.6.6/wscript:374: error: Could not autodetect OpenSSL 
                                               support.

Make sure OpenSSL development packages are installed. Use configure --without-ssl 
to disable this message.
PK
źródło

Odpowiedzi:

143

Tak, to obowiązkowy krok. Nie można usunąć OpenSSL z używanego programu, tak samo jak nie można było usunąć przypadkowych części silnika z samochodu.

Biblioteka OpenSSL jest zwykle już zainstalowana, ale musisz zainstalować pliki nagłówkowe. W zależności od dystrybucji systemu Linux potrzebne będą następujące pakiety:

  • Red Hat, Fedora, CentOS - openssl-devel
  • Debian, Ubuntu - libssl-dev
  • Arch - openssl

Technicznie można zastąpić OpenSSL, powiedzmy, NSS, ale nie o to tutaj chodzi.

grawitacja
źródło
1
wielkie dzięki, zainstalowałem nagłówek przez yum install openssl-devel
PK
Ah ma teraz sens. Jest to potrzebne również dla wget do ./configure z ssl.
dhaupin
3
Po użyciu odpowiedzi grawitys podczas próby skonfigurowania kałamarnicy (3.5.26) z openssl natknąłem się na dziwny efekt uboczny: O ile nie masz zainstalowanego „pkg-config”, biblioteka „openssl” i „libssl-dev” jest traktowana jak jeśli go brakowało. Musiałem więc również zainstalować pkg-config. Jest on używany w skrypcie konfiguracyjnym (około linii 23362) w celu znalezienia ścieżki i istnienia tego pakietu. W apt-get install pkg-config
systemie
8

debian:

apt-get install libssl-dev

apt-get install linux-headers-$(uname -r)
Albert E.
źródło
5
Jak i dlaczego pomaga to rozwiązać problem?
Kevin Panko
1
@KevinPankolibssl-dev
@KevinPanko to działa Mogę potwierdzić. Odpowiedź Alberta jest poprawna.
Jeff Atwood,
1
@JeffAtwood Nie wątpiłem w to, ale pomaga, gdy odpowiedź wyjaśnia, dlaczego polecenie jest potrzebne.
Kevin Panko,
dla mnie to nie rozwiązało, skonfiguruj także - bez-ssl dało mi, że jest to wymagany pakiet
Fabiotk
4

Nie, nie jest.

Nadal możesz kompilować nodejs ./configure --without-ssl

Grigoris
źródło
2

To pojawia się w Google z powodu problemu, który może pojawić się w przypadku niektórych instalacji - być może links-g. Miałem problem na Archlinuxie z links-utf8 i links-g-directfb.

Prawdopodobna prezentacja:

checking OPENSSL_CFLAGS... 
checking OPENSSL_LIBS... -lssl -lcrypto 
checking for OpenSSL... no
configure: error: OpenSSL not found

Spróbuj tego:

sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" configure

Użycie tego polecenia przed ./configurekrokiem powinno to naprawić.

anon_ssl_angel
źródło
2
dlaczego ta łatka rozwiązuje problem?
user237419,
2

Musisz zainstalować openssl-develw swoim systemie operacyjnym z:

yum install openssl-devel.x86_64

./configure --with-tls

make install

bedjaoui djounaydi
źródło
0

Jeśli nie uda ci się tylko z libssl-dev , w dystrybucji Debian , możesz dołączyć obie wersje Biblioteki SSL w tym samym czasie

apt-get install libssl-dev libssl1.0
PYK
źródło