./configure 期间缺少 OpenSSL。怎么修?

P K*_*P K 103 linux openssl

我试图安装 node.js 并发现在./configure.

我该如何解决?这是强制性步骤吗?该--without-ssl选项会解决问题吗?

# ./configure

Checking for gcc                         : ok
Checking for library dl                  : not found
Checking for openssl                     : not found
Checking for function SSL_library_init   : not found
Checking for header openssl/crypto.h     : not found
/home/ec2-user/node-v0.6.6/wscript:374: error: Could not autodetect OpenSSL 
                                               support.

Make sure OpenSSL development packages are installed. Use configure --without-ssl 
to disable this message.
Run Code Online (Sandbox Code Playgroud)

use*_*686 182

是的,这是一个强制性步骤。您不能从使用它的程序中删除 OpenSSL,就像您不能从汽车中删除随机引擎部件一样。

OpenSSL 库通常已经安装,但您必须安装头文件。根据您的 Linux 发行版,您将需要以下软件包:

  • 红帽、Fedora、CentOS - openssl-devel
  • Debian, Ubuntu - libssl-dev
  • 拱门 - openssl

从技术上讲,可以NSS替代OpenSSL,但这不是重点。

  • 在使用 [grawitys answer](https://superuser.com/a/371912/743888) 尝试使用 openssl 配置鱿鱼 (3.5.26) 后,我偶然发现了一些奇怪的副作用:除非你有“pkg-config” " 安装后,库 "openssl" 和 "libssl-dev" 被视为丢失。所以我也必须安装 pkg-config 。它在配置脚本中(第 23362 行左右)用于查找此包的路径和存在。在 debian 上,它通过以下方式安装: > `apt-get install pkg-config` (4认同)
  • 非常感谢,我通过 yum install openssl-devel 安装了标头 (2认同)

小智 10

Debian:

apt-get install libssl-dev

apt-get install linux-headers-$(uname -r)
Run Code Online (Sandbox Code Playgroud)

  • 这如何以及为什么有助于解决问题? (6认同)
  • @JeffAtwood我并不怀疑它,但是当答案解释为什么需要命令时它会有所帮助。 (2认同)

小智 5

不,不是。

你仍然可以编译nodejs./configure --without-ssl