J'ai installé libssl-dev et openssl mais j'obtiens ceci lorsque j'installe node.js:
> ./configure && make && make install
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for program gcc or cc : /usr/bin/gcc
Checking for gcc : ok
Checking for library dl : yes
Checking for openssl : not found
Checking for function SSL_library_init : yes
Checking for header openssl/crypto.h : yes
Checking for library rt : yes
Checking for fdatasync(2) with c++ : yes
Openssl est introuvable. Mais le nœud a été installé avec succès.
Pourquoi openssl n'est-il pas trouvé? Quelqu'un à le même problème?
Ce n'est pas exactement une question de programmation. Encore...
Le programme d'installation vérifie la prise en charge d'OpenSSL de deux manières. Le premier contrôle a échoué pour vous, le second a réussi. Pour moi, le premier contrôle a réussi (voir ci-dessous). De toute façon ça marche.
Voici ce que j'ai obtenu quand je l'ai construit:
$ Sudo apt-get install libssl-dev
$ ./configure
Checking for program g++ or c++ : /usr/bin/g++
Checking for program cpp : /usr/bin/cpp
Checking for program ar : /usr/bin/ar
Checking for program ranlib : /usr/bin/ranlib
Checking for g++ : ok
Checking for program gcc or cc : /usr/bin/gcc
Checking for gcc : ok
Checking for library dl : yes
Checking for openssl : yes
Checking for library rt : yes
<---snip--->
En supposant que vous ayez téléchargé node.js v0.2. à partir de http://nodejs.org/ , la configuration est principalement effectuée par waf dans le fichier wscript.
Les lignes concernées sont:
if not Options.options.without_ssl:
if conf.check_cfg(package='openssl',
args='--cflags --libs',
uselib_store='OPENSSL'):
Options.options.use_openssl = conf.env["USE_OPENSSL"] = True
conf.env.append_value("CPPFLAGS", "-DHAVE_OPENSSL=1")
else:
libssl = conf.check_cc(lib='ssl',
header_name='openssl/ssl.h',
function_name='SSL_library_init',
libpath=['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib'],
uselib_store='OPENSSL')
libcrypto = conf.check_cc(lib='crypto',
header_name='openssl/crypto.h',
uselib_store='OPENSSL')
La première partie est assez simple. Il exécute pkgconfig. Voici ce qui se passe lorsque je fais l'équivalent à la main:
$ pkg-config openssl --cflags --libs
-lssl -lcrypto
Le deuxième ensemble de vérifications est exécuté si pkg-config ne parvient pas à confirmer que le package est installé. Dans ce cas, il essaie de compiler un programme gcc trivial qui vérifie l'existence de fonctions dans libcrypt et libssl. Si ces deux réussissent, l'installation continue. Si l'un d'entre eux échoue, il y a une erreur fatale et le script explose.
@weng: J'ai eu le même problème. La solution était simple: Sudo apt-get install pkg-config :)
J'ai eu le même problème avec Debian 6. J'ai dû installer libcurl4-openssl-dev.
Basculez vers l'utilisateur root ou utilisez Sudo, puis exécutez:
apt-get install libcurl4-openssl-dev
Cela a résolu le problème pour moi.
Si vous utilisez Centos 5.x, assurez-vous d'installer openssl-devel avant ./configure.
yum install openssl-devel
Cela a résolu le même problème pour moi dans les centos.
J'ai eu le même problème.
J'ai essayé
./configure --prefix=/opt/node --openssl-libpath=/usr/local/lib/
qui l'a résolu même si je pense que --openssl-libpath=/usr/local/lib/
n'est pas nécessaire
['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib']
;./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include
On dirait que je peux faire:
apt-get install lib32z1-dev
apt-get install pkg-config
pour supprimer systématiquement toutes les erreurs et avertissements concernant openssl lorsque je fais un nouveau déploiement de Rackspace avec Ubuntu 11.04 ou 11.10, au cas où cela aiderait quelqu'un d'autre.
Voici un Gist avec un aperçu du script sur lequel j'ai finalement choisi de faire tourner ces types d'instances avec node.js:
https://Gist.github.com/1606102
Modifier : mise à jour de l'essentiel pour refléter les mises à jour apportées au nœud, etc.
Pour résoudre ce problème dans Ubuntu 12.04:
apt-get install pkg-config -y
Sudo apt-get install g ++ curl libssl-dev Apache2-utils
Pour les personnes disposant d'une nouvelle configuration Debian 6.0 (pour être plus précis: Debian 6.0.2.1 i386), les packages suivants doivent être installés pour exécuter node.js v.0.6.15 (la dernière version stable pour le moment): - build- essentiels - pkg-config - libssl-dev
Utilisez simplement aptitude -y install "package" ... j'espère que cela vous aidera tous les gars Debian. :)