OpenSSL fehlt während ./configure. Wie repariert man?

79

Ich habe versucht, node.js zu installieren und festgestellt, dass die OpenSSL-Unterstützung während fehlte ./configure.

Wie kann ich es reparieren? Ist es ein obligatorischer Schritt? Würde die --without-sslOption das Problem beheben?

# ./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
quelle

Antworten:

143

Ja, das ist ein obligatorischer Schritt. Sie können OpenSSL nicht aus einem Programm entfernen, das es verwendet, genauso wie Sie keine zufälligen Motorteile aus einem Auto entfernen konnten.

Die OpenSSL-Bibliothek ist normalerweise bereits installiert, Sie müssen jedoch die Header-Dateien installieren. Abhängig von Ihrer Linux-Distribution benötigen Sie folgende Pakete:

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

Technisch könnte man OpenSSL beispielsweise durch NSS ersetzen , aber darum geht es hier nicht.

Grawity
quelle
1
vielen dank, ich habe header von yum installiert installiere openssl-devel
PK
Ah macht jetzt Sinn. Dies ist erforderlich, damit wget ./ auch mit ssl konfigurieren kann.
Dhaupin
3
Nachdem ich grawitys answer verwendet habe, während ich versucht habe, squid (3.5.26) mit openssl zu konfigurieren, bin ich auf einen seltsamen Nebeneffekt gestoßen: Sofern Sie nicht "pkg-config" installiert haben, werden die Bibliotheken "openssl" und "libssl-dev" wie folgt behandelt wenn es fehlte. Also musste ich auch pkg-config installieren. Es wird im configure-Skript (um Zeile 23362) verwendet, um den Pfad und die Existenz dieses Pakets zu ermitteln. Auf debian wird es installiert von:>apt-get install pkg-config
Mihovil Bubnjar
8

debian:

apt-get install libssl-dev

apt-get install linux-headers-$(uname -r)
Albert E
quelle
5
Wie und warum hilft dies, das Problem zu beheben?
Kevin Panko
1
@ KevinPankolibssl-dev
@ KevinPanko das funktioniert kann ich bestätigen. Alberts Antwort ist richtig.
Jeff Atwood
1
@ JeffAtwood Ich habe nicht daran gezweifelt, aber es hilft, wenn eine Antwort erklärt, warum ein Befehl benötigt wird.
Kevin Panko
dies wurde für mich nicht gelöst, konfiguriere auch - ohne ssl gab mir, dass es ein erforderliches Paket ist
Fabiotk
4

Nein, das ist es nicht.

Sie können mit noch nodejs kompilieren ./configure --without-ssl

Grigoris
quelle
2

Dies wird bei Google für ein Problem angezeigt, das bei einigen Installationen auftreten kann - möglicherweise links-g. Ich hatte das Problem auf Archlinux mit links-utf8 und links-g-directfb.

Voraussichtliche Präsentation:

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

Versuche dies:

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

Die Verwendung dieses Befehls vor Ihrem ./configureSchritt sollte das Problem beheben.

anon_ssl_angel
quelle
2
Warum behebt dieser Patch das Problem?
user237419
2

Sie müssen openssl-develin Ihrem Betriebssystem installieren mit:

yum install openssl-devel.x86_64

./configure --with-tls

make install

bedjaoui djounaydi
quelle
0

Wenn Sie nicht nur mit libssl-dev über Debian Distribution erfolgreich sind, können Sie beide SSL-Bibliotheksversionen gleichzeitig einschließen

apt-get install libssl-dev libssl1.0
PYK
quelle