Node.js安装:openssl没有安装

我已经安装了libssl-dev和openssl,但是我在安装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。 但节点安装成功。

为什么不findopenssl? 任何人都有同样的问题?

这不完全是一个编程问题。 仍然…

快速回答

安装程序通过两种方式检查OpenSSL支持。 第一次检查失败,第二次成功。 对我来说,第一次检查成功(见下文)。 无论哪种方式工作。

较长的答案

这是我build立它时得到的结果:

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

假定您从http://nodejs.org/下载了node.js v0.2.3 ,configuration主要由wf文件中的wscript完成。

相关的行是:

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

第一部分很简单。 它运行pkgconfig。 以下是我手上做同样事情时发生的事情:

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

如果pkg-config无法确认软件包已安装,则运行第二组检查。 在这种情况下,它会尝试编译一个简单的gcc程序,检查libcrypt和libssl中是否存在函数。 如果这些都成功,安装继续。 如果其中一个失败了,那就是一个致命的错误,脚本被炸毁了。

@weng:我有同样的问题。 解决scheme很简单:sudo apt-get install pkg-config 🙂

我有使用Debian 6相同的问题。我不得不安装libcurl4-openssl-dev。

切换到root用户,或使用sudo,然后运行:

 apt-get install libcurl4-openssl-dev 

这为我解决了这个问题。

如果使用Centos 5.x,请确保在./configure之前安装openssl-devel。

 yum install openssl-devel 

这解决了我在centos同样的问题。

  1. 确认你安装的openssl。
  2. 如果已安装,请在['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib']确认其path。
  3. 如果不是这些path,请尝试使用正确的opensslpath./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include

我有同样的问题。

我试过了

 ./configure --prefix=/opt/node --openssl-libpath=/usr/local/lib/ 

即使我认为--openssl-libpath=/usr/local/lib/不是必须的

似乎我可以这样做:

 apt-get install lib32z1-dev apt-get install pkg-config 

在我使用Ubuntu 11.04或11.10进行全新的Rackspace部署时始终如一地删除有关openssl的所有错误和警告,以防止其他人退出。

这里有一个脚本的概要,我终于决定使用node.js来转换这些types的实例:

https://gist.github.com/1606102

编辑 :更新要点以反映对节点进行的更新等。

sudo apt-get install g ++ curl libssl-dev apache2-utils

对于新buildDebian 6.0(更确切的说是Debian 6.0.2.1 i386)的用户,需要安装以下软件包来运行node.js v.0.6.15(目前最新版本): – build- essentials – pkg-config – libssl-dev

只需使用aptitude -y install“package”…希望对你所有的Debian伙伴有所帮助。 🙂

在Ubuntu 12.04中解决这个问题:

 apt-get install pkg-config -y