同时安装两个版本的 openssl

同时安装两个版本的 openssl

我需要同时安装 2 个不同版本的 OpenSSL。我目前正在使用 Amazon EC2 和 Amazon 32 位 AMI,它目前运行的是 OpenSSL 1.0.0a。我需要运行一个需要 OpenSSL.0.9.6 的旧软件。不幸的是,据我所知,OpenSSL 不向后兼容,因此我需要同时安装两个版本。我找到了一个可以使用的 RPM,但是,我不知道如何同时安装它们而不破坏任何东西。任何有关此主题的信息都将不胜感激。

谢谢

答案1

您可以从 openssl.org 档案下载源代码并从源代码进行编译,安装到单独的目录中。

./config --prefix=/old-openssl-version-x.x.x --openssldir=/old-openssl-version-x.x.x
make
make test
sudo make install

然后使用特定的版本,如下所示:

/old-openssl-version-x.x.x/bin/openssl do whatever you want

答案2

我的猜测是,你正在运行的发行版没有关于相对于其中soname包含的对象来命名库包的合理策略,并且还对安装同一包的多个版本有顾虑。

在这种情况下,您唯一的选择是手动解压软件包(我相信这rpm2cpio是该特定行动的起点,除非有其他rpm选项可以解决问题)并将相关文件放置在正确的位置。如果您只想要libssl和(结果)libcrypto,这应该相当简单 - 您将libssl.so.0.9.6libcrypto.so.0.9.6复制到位,ldd有问题的二进制文件上应该会显示成功。

如果您确实需要某个特定版本的完整 OpenSSL 套件,那么为了互联网的利​​益,您需要公开点名批评该供应商,因为这太荒谬了。

答案3

一种选择是简单地在您的系统上设置一个 chroot,其中包含您需要的一组软件包。这将占用更多存储空间,并且意味着您必须对根操作系统和 chroot 进行维护,但它允许您在 chroot 中运行一个需要较旧库集的应用程序,同时在运行需要最新库的应用程序的同一系统上运行该应用程序。

答案4

我在 BSD 机器上做过这个,没有任何问题。只需确保只安装库,不要覆盖实际的“openssl”二进制文件(手册页也是如此)。

仅使用 rpm2cpio 并提取库可能更安全。

相关内容