原因

原因

これは標準的な質問Red Hat Enterprise Linux (およびその派生版) 6.4 と 6.5 間の OpenSSL バイナリ互換性の問題について。

この問題は、元の質問に記載されているものだけでなく、さまざまなサードパーティ パッケージに適用されます。

Percona 5.5 をインストールしていて、5.6 にアップグレードしようとしていますが、予期しない問題が発生しており、解決方法がわかりません。

私は以下の指示に従いましたhttp://www.percona.com/doc/percona-server/5.6/アップグレードガイド_55_56.html

5.5 パッケージを削除し、次のコマンドを実行してアップグレードしました。

yum install Percona-Server-server-56 Percona-Server-client-56

返されたエラーは次のとおりです。

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-shared-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Finished Dependency Resolution
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
 You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of mysql

正しくインストールされている openssl と openssl-devel の再インストールなど、あらゆることを試しましたが、まだ動作しません。何かアイデアはありますか?

CentOS 6.4 を実行しています:

root@server01 [/]# cat /proc/version
Linux version 2.6.32-279.5.2.el6.x86_64 ([email protected]) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Aug 24 01:07:11 UTC 2012
root@server01 [/]#

答え1

この問題の根本的な原因は、Red HatがOpenSSLパッケージ6.4と6.5の間でバイナリ互換性を壊したことです。彼らはそうしないと約束した

この問題の解決は簡単ですが、展開したアプリケーションによっては、アプリケーション ベンダーに怒鳴りつける必要があるかもしれません。怒りの大半は Red Hat の担当者に向けるようにしてください (RHEL を使用している場合)。


原因

Red HatはEL6でOpenSSLのバージョンをアップグレードしました6.5アップデートで1.0.0から1.0.1へ解決するために何年も前からの要望楕円曲線暗号のサポートを追加します。このパッケージはバイナリ互換性がなくなったため、OpenSSL 1.0.0 でビルドされたプログラムは、1.0.1 でソースから再構築する必要があります。

もちろん、ほとんどの人が行うサードパーティ製アプリケーションをインストールする場合は別ですが、それらも再コンパイルする必要があり、現時点ではほとんどのサードパーティが再コンパイルし、6.5 に対して新しいパッケージを構築しています。現在、サードパーティが一般的に出荷しているのはこれらのパッケージです。

解決

影響を受けるサードパーティ パッケージをすべて特定し、サードパーティ パッケージ ベンダーに連絡して更新を依頼してください。すべてのパッケージの更新が利用可能になったら、システムを安全に 6.5 に更新し、同時にサードパーティ パッケージの更新をインストールすることで、解決が完了します。

パッケージ マネージャーと yum リポジトリを通じてインストールされたパッケージの場合、これは簡単です。アップグレードを試行し、依存関係の問題なしにアップグレードできるということは、パッケージが準備ができていることを意味します。

手動でインストールされたパッケージについては、自分で確認し、ベンダーが提供したアップデートを適用する必要があります。また、このような場合には、ベンダーに適切な RPM パッケージと yum リポジトリを提供するように圧力をかける必要があります。

ほとんどのユーザーは、次のようなコマンドを使用して 6.5 にアップデートできます。

yum --disableexcludes=all --obsoletes update

特定のマイナー リリースを設定した RHEL ユーザーは、上記の更新を実行する前に、まずリリース ターゲットとして 6.5 を設定する必要があります。

subscription-manager release --set=6.5

この時点で、インストールしようとしていたサードパーティ パッケージをインストールできるはずです。


その他の問題

特定の VPS またはクラウド プロバイダー上の CentOS およびその他の RHEL クローンのユーザーは、6.5 にアップデートできないことに気付く場合があります。yumコマンドを実行すると、アップデート対象としてマークされているパッケージがないことが示されます。これまでのところ、Windows Azure および一部のローエンド VPS プロバイダーでこの現象を確認しています。

このような場合、使用中の CentOS イメージのプロバイダーが、/etc/yum.repos.d/CentOS-Base.repo公式 CentOS ミラー以外のリポジトリを指すようにイメージを変更しています。

この問題を解決するには、リポジトリ ファイルを手動で編集して公式 CentOS ミラーを復元するか、centos-releaseCentOS ミラーで公式 RPM を見つけて再インストールします。たとえば、次のようになります (この URL は現在のみ有効で、後で古くなる可能性があります。まずミラーを確認してください)。

yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm

答え2

opensslをopenssl-1.0.1e-15.el6.x86_64.rpmにアップグレードすると、PS 5.6をインストールできます。

6.4 では、私たち (私は Percona で働いています) がカスタムメイドのパッケージもいくつか用意しています。 http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/

関連情報