openssl 无法从源安装错误:/usr/bin/ld:找不到 -lssl

openssl 无法从源安装错误:/usr/bin/ld:找不到 -lssl

我正在尝试通过源代码安装 openssl,我运行:

wget  wget ftp://ftp.openssl.org/source/openssl-1.0.2g.tar.gz
tar xvzf openssl-1.0.2g.tar.gz
cd openssl-1.0.2g
./config --prefix=/home/david/project shared 
make depend
make test
make install
make

执行 make test 后失败:

make[2]: Leaving directory `/home/david/project/openssl-1.0.1s'
make[2]: Entering directory `/home/david/project/openssl-1.0.1s/test'
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make[2]: *** [link_app.gnu] Error 1
make[2]: Leaving directory `/home/david/project/openssl-1.0.1s/test'
make[1]: *** [bntest] Error 2
make[1]: Leaving directory `/home/david/project/openssl-1.0.1s/test'
make: *** [tests] Error 2

由于我没有使用包管理器,如何从源代码安装 libssl-dev?


编辑。我有:

[root@localhost lib64]# ls -l libssl*
-rwxr-xr-x. 1 root root 258456 Dec 15 19:46 libssl3.so
lrwxrwxrwx. 1 root root     16 Feb 27 22:10 libssl.so.10 -> libssl.so.1.0.1e
-rwxr-xr-x. 1 root root 441240 Jan  8 14:45 libssl.so.1.0.1e

并补充道:

[root@localhost lib64]# ls -l libssl*
-rwxr-xr-x. 1 root root 258456 Dec 15 19:46 libssl3.so
lrwxrwxrwx. 1 root root     16 Mar 18 16:24 libssl.so -> libssl.so.1.0.1e
lrwxrwxrwx. 1 root root     16 Feb 27 22:10 libssl.so.10 -> libssl.so.1.0.1e
-rwxr-xr-x. 1 root root 441240 Jan  8 14:45 libssl.so.1.0.1e

我怎样才能避免添加符号链接?我可以在安装选项中做些什么吗?

答案1

./config --prefix=/home/david/project 共享

我通常不使用 PREFIX。我建议使用 OPENSSLDIR,因为 OpenSSL 配置支持以下选项:

wget ftp://ftp.openssl.org/source/openssl-1.0.2g.tar.gz
tar xvzf openssl-1.0.2g.tar.gz
cd openssl-1.0.2g
./config shared no-ssl2 no-ssl3 no-comp --openssldir=/home/david/project 

make depend
make test
make install

另外,你似乎有一个多余的make。我猜你可能不需要它。它有什么用途?

make depend
make test
make install
make

另外,您可能可以避免在本地安装手册页,而只需使用make install_sw

make depend
make test
make install_sw

您还应该考虑使用 RPATH 来确保避免运行时链接问题:

export MYPATH=/home/david/project 
./config shared no-ssl2 no-ssl3 no-comp -Wl,-rpath=${MYPATH}/lib --openssldir=${MYPATH}

編輯。我曾......

在开始安装到现有安装目录之前,您可能应该删除旧的本地安装:

export MYPATH=/home/david/project
rm -rf ${MYPATH}

./config shared no-ssl2 no-ssl3 no-comp -Wl,-rpath=${MYPATH}/lib --openssldir=${MYPATH}
make
make test
make install_sw

另请参阅编译和安装在 OpenSSL wiki 上。它讨论了 PREFIX、OPENSSLDIR 和 RPATH。它还讨论了其他配置选项,如no-ssl2no-ssl3no-comp

相关内容