OpenSSL manquant pendant ./configure. Comment réparer?

79

J'essayais d'installer node.js et j'ai trouvé le support OpenSSL manquant pendant ./configure.

Comment puis-je le réparer? Est-ce une étape obligatoire? L' --without-ssloption résoudrait-elle le problème?

# ./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
la source

Réponses:

143

Oui, c'est une étape obligatoire. Vous ne pouvez pas supprimer OpenSSL d'un programme qui l'utilise, de la même manière que vous ne pouviez pas supprimer des pièces de moteur aléatoires d'une voiture.

La bibliothèque OpenSSL est généralement déjà installée, mais vous devez installer les fichiers d’en-tête. En fonction de votre distribution Linux, vous aurez besoin des packages suivants:

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

Techniquement, on pourrait remplacer OpenSSL par, disons, NSS, mais ce n’est pas l’enjeu ici.

Grawity
la source
1
merci beaucoup, j'ai installé en-tête par yum installer openssl-devel
PK
Ah est logique maintenant. Ceci est également nécessaire pour wget to ./configure avec ssl.
Dhaupin
3
Après avoir utilisé la réponse de grawity en essayant de configurer squid (3.5.26) avec openssl, je suis tombé sur un étrange effet secondaire: à moins que "pkg-config" ne soit installé, la bibliothèque "openssl" et "libssl-dev" est traitée en tant que s'il manquait. J'ai donc dû installer pkg-config également. Il est utilisé dans le script configure (autour de la ligne 23362) pour rechercher le chemin d'accès et l'existence de ce package. Sur debian, il est installé par:>apt-get install pkg-config
Mihovil Bubnjar
8

debian:

apt-get install libssl-dev

apt-get install linux-headers-$(uname -r)
Albert E
la source
5
Comment et pourquoi cela aide-t-il à résoudre le problème?
Kevin Panko
1
@KevinPankolibssl-dev
@ KevinPanko cela fonctionne, je peux confirmer. La réponse d'Albert est correcte.
Jeff Atwood
1
@ JeffEtwood Je n'en ai pas douté, mais cela aide quand une réponse explique pourquoi une commande est nécessaire.
Kevin Panko
cela n'a pas résolu pour moi, également configurer --without-ssl m'a donné que c'est un paquet requis
Fabiotk
4

Non ce n'est pas.

Vous pouvez toujours compiler nodejs avec ./configure --without-ssl

Grigoris
la source
2

Cela se présente sur Google pour un problème qui pourrait arriver avec certaines installations - peut-être links-g. J'ai eu le problème sur Archlinux avec links-utf8 et links-g-directfb.

Présentation probable:

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

Essaye ça:

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

L'utilisation de cette commande avant votre ./configureétape devrait résoudre le problème.

anon_ssl_angel
la source
2
pourquoi ce correctif résout-il le problème?
user237419
2

Vous devez installer openssl-develdans votre système d'exploitation avec:

yum install openssl-devel.x86_64

./configure --with-tls

make install

bedjaoui djounaydi
la source
0

Si vous ne réussissez pas uniquement avec libssl-dev , via la distribution Debian , vous pouvez inclure les deux versions de la bibliothèque SSL en même temps.

apt-get install libssl-dev libssl1.0
PYK
la source