我需要在运行 sles11 sp3 的服务器上将 OPENSSL 从 0.9.8j-0.50.1 -> 1.0.2a 升级,以便动态链接到我的程序。
升级我的构建环境(sles11sp3)的步骤如下:
1.从官网下载安装包https://www.openssl.org/source/并如下所示,
a)wgethttps://www.openssl.org/source/openssl-1.0.2a.tar.gz b)./config -fPIC共享 --prefix=/usr --openssldir=/etc/ssl c)make d)make install INSTALL_PREFIX=/home/Release/openssl/ e)cd /home/Release/openssl/ d) ls -l f)cp -rf */
2.现在如果执行openssl版本,则显示如下(预期),
OpenSSL> version
OpenSSL 1.0.2a 19 Mar 2015
OpenSSL>
3.之后,编译我的程序(有SNMP、CURL),我看到下面有两个编译警告,
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:警告:libcrypto.so.0.9.8,需要/ usr/lib64/libnetsnmpagent.so,可能与 libcrypto.so.1.0.0 冲突
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: warning: libssl.so.0.9.8, needed by /usr/lib64/libcurl.so, may conflict with libssl.so.1.0.0
4.因此修复此警告,在 /usr/lib64 目录中创建以下符号链接,如下所示,
cd /usr/lib64 ln -sf libssl.so.1.0.0 libssl.so.0.9.8 ln -sf libcrypto.so.1.0.0 libcrypto.so.0.9.8
5.现在我没有看到任何编译警告,并且我的构建rpm也已生成(myprogram.rpm)。
6.在我的企业服务器(这里只需要运行我的程序)中遵循相同的步骤(除了3),该服务器在相同的sles11 sp3上运行。
rpm -ivh myprogram.rpm
error:Failed dependencies:
libcrypto.so.1.0.0()(64bit) is needed by myprogram
libssl.so.1.0.0()(64bit) is needed by myprogram
请建议我哪里做错或遗漏了什么。