Node.js installation: openssl not installed Node.js installation: openssl not installed javascript javascript

Node.js installation: openssl not installed


@weng: I had the same problem. The solution was easy: sudo apt-get install pkg-config :)


This isn't exactly a programming question. Still...

Quick answer

The installer checks for OpenSSL support in two ways. The first check failed for you, the second succeeded. For me, the first check succeeded (see below). Either way works.

Longer answer

Here's what I got when I built it:

$ sudo apt-get install libssl-dev$ ./configureChecking 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--->

Presuming you downloaded node.js v0.2.3 from http://nodejs.org/, the configuration is mostly done by waf in the file wscript.

The relevant lines are:

  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')

The first part is simple enough. It runs pkgconfig. Here is what happens when I do the equivalent by hand:

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

The second set of checks is run if pkg-config fails to confirm the package is installed. In that case, it tries to compile a trivial gcc program which checks for the existence of functions in libcrypt and libssl. If those both succeed, installation continues. If one of them fails, there's a fatal error, and the script bombs out.


I Had the same problem using Debian 6. I had to install libcurl4-openssl-dev.

Switch to root user, or use sudo, then run:

apt-get install libcurl4-openssl-dev

This fixed the problem for me.