javascript-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。 但是节点已成功安装。

为什么找不到openssl? 有人有同样的问题吗?

ajsie asked 2020-07-12T07:09:41Z
10个解决方案
49 votes

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

Ashwin Bharambe answered 2020-07-12T07:10:51Z
35 votes

这不是一个编程问题。 仍然...

快速回答

安装程序通过两种方式检查对OpenSSL的支持。 第一次检查对您失败,第二次成功。 对我而言,第一次检查成功(请参见下文)。 不管哪种方法。

更长的答案

这是我构建它时得到的:

$ 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,则该配置主要由waf在文件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中是否存在函数。 如果两者均成功,则继续安装。 如果其中之一失败,则将发生致命错误,脚本将被炸毁。

Conspicuous Compiler answered 2020-07-12T07:10:31Z
26 votes

我在使用Debian 6时遇到了同样的问题。我必须安装libcurl4-openssl-dev。

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

apt-get install libcurl4-openssl-dev

这为我解决了问题。

joshbennett answered 2020-07-12T07:11:20Z
10 votes

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

yum install openssl-devel

这在centos中为我解决了相同的问题。

Hal answered 2020-07-12T07:11:44Z
3 votes
  1. 确认您的openssl已安装。
  2. 如果已安装,请在./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include中确认其路径;
  3. 如果不在这些路径中,请尝试使用正确的openssl路径进行以下选择./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include80
mindon answered 2020-07-12T07:12:13Z
3 votes

我有同样的问题。

我试过了

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

即使我认为没有必要--openssl-libpath=/usr/local/lib/也解决了它

chatfeed answered 2020-07-12T07:12:42Z
3 votes

似乎我可以做到:

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

当我使用Ubuntu 11.04或11.10进行全新的Rackspace部署时,可以一贯删除关于openssl的所有错误和警告,以防其他任何人使用。

这是我最终决定使用node.js分解这些类型的实例的脚本摘要的摘要:

[HTTPS://gist.GitHub.com/1606102]

编辑:更新了要点,以反映对Node等所做的更新。

mikermcneil answered 2020-07-12T07:13:19Z
2 votes

要在Ubuntu 12.04中解决此问题:

apt-get install pkg-config -y
bithavoc answered 2020-07-12T07:13:40Z
1 votes

须藤apt-get install g ++ curl libssl-dev apache2-utils

j03m answered 2020-07-12T07:14:00Z
1 votes

对于安装了新的Debian 6.0(更准确地说是Debian 6.0.2.1 i386)的用户,需要安装以下软件包才能运行node.js v.0.6.15(目前最新稳定):-建造必备-pkg-config-libssl-dev

只需使用aptitude -y install“ package” ...希望对您所有的Debian家伙有所帮助。 :)

Bouncner answered 2020-07-12T07:14:25Z
translate from https://stackoverflow.com:/questions/3974707/node-js-installation-openssl-not-installed