使用 wget 时未定义符号:EVP_idea_cbc

使用 wget 时未定义符号:EVP_idea_cbc

当尝试运行此程序时 sudo wget http://www.openssl.org/source/openssl-1.1.1.tar.gz我收到以下错误:

wget: /usr/local/ssl/lib/libssl.so.1.0.0: no version information available (required by wget)
wget: /usr/local/ssl/lib/libssl.so.1.0.0: no version information available (required by wget)
URL transformed to HTTPS due to an HSTS policy
--2019-02-24 23:46:26--  https://www.openssl.org/source/openssl-1.1.1.tar.gz
wget: symbol lookup error: /usr/local/ssl/lib/libssl.so.1.0.0: undefined symbol: EVP_idea_cbc

答案1

这是静态链接到 /usr/local 的 wget 的自定义版本吗?

您可以运行which wget以获取 wget 的完整路径。输出可能类似于

$ which wget
/usr/bin/wget

然后使用ldd并传递该完整路径。例如ldd /usr/bin/wget

输出应如下所示:

$ ldd /usr/bin/wget 
    linux-vdso.so.1 (0x00007ffcc3bfd000)
    libgtk3-nocsd.so.0 => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x00007f4f516da000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f4f51468000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f4f51261000)
    libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f4f51044000)
    libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f4f50dda000)
    libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f4f50962000)
    libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f4f50754000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4f50363000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4f5015f000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4f4ff40000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4f51b62000)
    libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f4f4fbc2000)

ldd告诉您可执行文件(wget)在哪里寻找它的动态链接库,即.so它所依赖的文件。

如果您使用的是 wget 的自定义版本,并且希望 .so 库位于 /usr/local,那么您必须在包管理器之外自行安装这些库。

如果你想使用来自包管理器存储库的 wget 版本,它将在预期的 lib 目录中查找(类似于我上面的),你应该使用类似sudo apt-get install wget

相关内容