44 votos

Instalación de node.js: openssl no instalado

He instalado libssl-dev y openssl pero entiendo esto cuando instalo 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 

No se encuentra OpenSSL. Pero nodo fue instalado con éxito.

¿Por qué no se encuentra openssl? ¿Alguien tiene el mismo problema?

49voto

Ashwin Bharambe Puntos 469

@weng: tuve el mismo problema. La solución fue fácil: sudo apt-get install pkg-config :)

35voto

Conspicuous Compiler Puntos 4762

Esto no es exactamente una programación de que se trate. Todavía...

Respuesta rápida

El programa de instalación comprueba por OpenSSL apoyo de dos maneras. El primer error de comprobación para usted, el segundo lo logró. Para mí, el primer éxito (ver más abajo). De cualquier manera funciona.

Respuesta larga

Aquí está lo que hice cuando me lo construyó:

$ 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--->

Suponiendo que has descargado node.js v0.2.3 de http://nodejs.org/, la configuración se realiza principalmente por waf en el archivo wscript.

Las líneas relevantes son:

  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 primera parte es bastante simple. Se ejecuta pkgconfig. Aquí es lo que sucede cuando hago el equivalente a mano:

 $ pkg-config openssl --cflags --libs
 -lssl -lcrypto  

El segundo conjunto de comprobaciones se ejecuta si pkg-config falla para confirmar que el paquete está instalado. En ese caso, intenta compilar un trivial gcc programa que comprueba la existencia de funciones en libcrypt y libssl. Si esos que tanto éxito, la instalación continúa. Si uno de ellos falla, hay un error fatal, y la secuencia de comandos de bombas.

26voto

joshbennett Puntos 437

Tuve el mismo problema usando Debian 6. Tuve que instalar libcurl4-openssl-dev.

Cambiar al usuario root, o usar sudo, luego ejecute:

apt-get install libcurl4-openssl-dev

Esta había solucionado el problema para mí.

10voto

Hal Puntos 783

Si utiliza Centos 5.x, asegúrese de instalar openssl-devel antes. / configure.

yum install openssl-devel

Esto solucionó el mismo problema para mí en centos.

3voto

mindon Puntos 21
  1. Confirme su openssl está instalado.
  2. Si ha instalado, confirmar su camino en ['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib'] ;
  3. Si no en esos caminos, probar siguiendo las opciones con su camino correcto openssl./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X