我正在尝试通过源代码安装 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-ssl2
、no-ssl3
和no-comp
。