允许 openssl 1.1.0 和 1.0.2 共享库共存的符号链接的正确排列是什么?

允许 openssl 1.1.0 和 1.0.2 共享库共存的符号链接的正确排列是什么?

我希望 openssl-1.0.2 和 openssl-1.1.0 都可用于动态链接到不同的应用程序。我对此有点不确定,因为我希望 1.0.2 安装在名为 libssl.so.1.0.2 的文件中,但它实际上位于名为 libssl.so.1.0.0 的文件中。

这是仅安装 1.0.2 的设置:

/versions64/local/lib/libssl.so -> libssl.so.1.0.0
/versions64/local/lib/libssl.so.1.0.0

这是安装 1.1.0 后的样子:

/versions64/local/lib/libssl.so -> libssl.so.1.1
/versions64/local/lib/libssl.so.1.0.0
/versions64/local/lib/libssl.so.1.1

需要 1.0.2 的应用程序是否会知道查找 libssl.so.1.0.0 并忽略 libssl.so?

答案1

我刚刚测试过。我运行的是 Apache 2.4,它被编译为使用 OpenSSL 1.0.2。 Apache 成功启动并为 SSL 站点提供服务。

首先,我重命名了新libssl.so.1.1库,Apache 仍然成功重新启动。然后我重命名了新libssl.so链接,Apache仍然启动成功。最后我重命名了旧libssl.so.1.0.0库,Apache 无法重新启动。

这证明它忽略了libssl.so符号链接并正确使用了libssl.so.1.0.0编译时所针对的符号链接,如预期的那样。

相关内容