尝试从源代码编译“wget”时 SSL 不可用?

and*_*tse 5 linux compile openssl

我试图wget通过以下方式在 Linux 中从源代码安装:

./configure --with-ssl=openssl
Run Code Online (Sandbox Code Playgroud)

但它返回给我:

configure: error: --with-ssl=openssl was given, but SSL is not available.
Run Code Online (Sandbox Code Playgroud)

如果我做:

root@qemux86:/mnt/sdc2/wget-1.16# which openssl
/mnt/sdc2/miniconda/bin/openssl
Run Code Online (Sandbox Code Playgroud)

所以OpenSSL肯定已经安装了。为什么还是说 SSL 不可用?

Gia*_*968 2

\n

所以必须安装OpenSSL。为什么还是说 SSL 不可用?

\n
\n\n

是的,OpenSSL 作为已编译的二进制文件安装在您的系统上,但未安装源编译所需的共享库和相关标。因此,当您尝试wget从源代码编译时会出现配置错误;您需要安装这些共享库才能使用该--with-ssl=openssl标志成功编译。

\n\n

要检查您的系统上是否安装了 OpenSSL 库,只需运行ldconfig以下命令:

\n\n
ldconfig -p | grep ssl\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出应该是这样的;取自我管理的正在运行的 Ubuntu 系统:

\n\n
libssl.so.1.0.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libssl.so.1.0.0\nlibssl.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果输出为空,则表示未安装 OpenSSL 的共享库。所以你应该安装它们。

\n\n

不确定您使用的是哪种 Linux,但在 Ubuntu/Debian 上您可以通过apt-get命令运行此命令来安装它:

\n\n
sudo apt-get install libssl-dev\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 CentOS/RedHat 系统上,您可以通过yum以下方式安装它:

\n\n
yum install -y openssl-devel\n
Run Code Online (Sandbox Code Playgroud)\n\n

另外,如果您担心在系统上安装共享库,请不要担心。它们基本上只是坐在那里,什么都不做,直到程序需要编译或运行时使用为止。这意味着这些文件只会占用系统上的物理空间,并且不会通过简单安装而在系统上增加额外的 CPU 或内存负载。

\n