web-dev-qa-db-ja.com

2つのバージョンのopensslを同時にインストールする

2つの異なるバージョンのOpenSSLを同時にインストールする必要があります。現在、OpenSSL 1.0.0aを実行しているAmazon 32ビットAMIでAmazon EC2を使用しています。 OpenSSL.0.9.6を必要とする古いソフトウェアを実行する必要があります。残念ながら、私が学んだことから、OpenSSLには下位互換性がないため、両方のバージョンを同時にインストールする必要があります。機能するRPMを見つけましたが、何も壊さずにそれらを同時にインストールする方法を知りません。このテーマに関する情報をいただければ幸いです。

ありがとう

4

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
3
Sergey

私の推測では、ライブラリパッケージに含まれるオブジェクトのsonameに関連するライブラリパッケージの命名に関する適切なポリシーがなく、同じパッケージの複数のバージョンのインストールに関する概念もあるディストリビューションを実行していると思います。

この場合、あなたの唯一のオプションは、パッケージを手で開梱し(トリックを行うrpmオプションがない限り、rpm2cpioがその特定の十字軍の出発点であると信じています)、関連するファイルを正しい場所に配置することです(s)。 libsslと(結果として)libcryptoの後でのみ、これはかなり簡単なはずです。libssl.so.0.9.6libcrypto.so.0.9.6を所定の位置にコピーすると、問題のあるバイナリのlddが幸せを示すはずです。

特定のバージョンのOpenSSLスイート全体が必要な場合、それはとんでもないことなので、インターネットの利益のために、ベンダーに公に名前を付けて恥をかかせる必要があります。

1
womble

1つのオプションは、必要なパッケージのセットを備えたディストリビューションを使用して、システムにchrootをセットアップすることです。これはより多くのストレージを占有し、ルートOSとchrootの両方でメンテナンスを行う必要があることを意味しますが、同じシステム上で古いライブラリのセットを必要とするchrootで1つのアプリを実行できるようになります。最新のライブラリを必要とするアプリケーションを実行します。

1
Zoredache

私は問題なくBSDボックスでこれを行いました。ライブラリのみをインストールし、実際の「openssl」バイナリ(マンページも)を上書きしないようにしてください。

Rpm2cpioだけを使用してライブラリを抽出する方が安全でしょう。

0
polynomial