同时安装2个版本的openssl

我需要同时安装两个不同版本的OpenSSL。 目前,我正在使用Amazon EC2和Amazon 32位AMI,该AMI目前运行OpenSSL 1.0.0a。 我有一个需要运行的旧软件,需要OpenSSL.0.9.6。 不幸的是,从我所学到的,OpenSSL不是向后兼容的,所以我将需要同时安装两个版本。 我find了一个可以运行的RPM,但是我不知道如何在不破坏任何东西的情况下同时安装它们。 任何关于这个问题的信息将不胜感激。

谢谢

我的猜测是,你正在运行一个发行版,它没有相对于它所包含的对象的soname命名库包的理智策略,而且它也有关于安装同一个包的多个版本的内容。

在这种情况下,你唯一的select是手动解包(我相信rpm2cpio是特定十字军东征的起点,除非有一个rpm选项可以做到这一点),并将相关文件放在正确的位置。 如果你只是在libssl之后(因此) libcrypto ,这应该是相当直接的 – 你将libssl.so.0.9.6libcrypto.so.0.9.6复制到位,而有问题的二进制文件应该显示为ldd幸福。

如果你确实需要一个特定版本的整个OpenSSL套件,那么为了互联网的利​​益,你需要公开地命名和耻辱供应商,因为这太荒谬了。

一种select是简单地在你的系统上设置一个chroot,然后发行包含你需要的一系列软件包。 这会占用更多的存储空间,这意味着你必须对root操作系统和chroot进行维护,但是它可以让你在chroot中运行一个应用程序,这需要在同一个系统上安装一套较旧的库您运行的应用程序需要最新的库。

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

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

然后使用这样的特定版本:

 /old-openssl-version-xxx/bin/openssl do whatever you want 

我在BSD盒子上做了这个没有任何问题。 只要确保只安装这些库,而不是覆盖实际的“openssl”二进制文件(manpages)。

这可能会更安全,只是rpm2cpio和提取库。