web-dev-qa-db-ja.com

CentOS 6.4へのサードパーティアプリケーションパッケージのインストールは、依存関係libcrypto.so.10およびlibssl.so.10がないために失敗します

これは 正規の質問 Red Hat Enterprise Linux(およびその派生物)6.4と6.5の間のOpenSSLバイナリ互換性の問題についてです。

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

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

http://www.percona.com/doc/percona-server/5.6/upgrading_guide_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 [/]#
16
user2643870

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

この問題の解決は簡単ですが、展開したアプリケーションによっては、アプリケーションベンダーに怒鳴る場合があります。 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イメージのプロバイダーは、公式のCentOSミラー以外のリポジトリを指すようにイメージの/etc/yum.repos.d/CentOS-Base.repoを変更しています。

これは、レポファイルを手動で編集して公式のCentOSミラーを復元するか、公式のcentos-release RPMをCentOSミラーに配置して再インストールすることで解決できます。例(このURLは今日のみ有効で、後で古くなる可能性があります。最初にミラーを確認してください):

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

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/

5