RedHat Enterprise Linux 7(RHEL7)で、yum updateしようとした際に次のようなメッセージが表示され、php5.4のアップデートに失敗する場合があります。
# yum update 読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ php.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-cli.x86_64 0:5.4.16-46.el7 を 更新 --> 依存性の処理をしています: php-cli(x86-64) = 5.4.16-46.el7 のパッケージ: php-devel-5.4.16-46.el7.x86_64 ---> パッケージ php-cli.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-common.x86_64 0:5.4.16-46.el7 を 更新 --> 依存性の処理をしています: php-common(x86-64) = 5.4.16-46.el7 のパッケージ: php-mbstring-5.4.16-46.el7.x86_64 ---> パッケージ php-common.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-gd.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php-gd.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-mysql.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php-mysql.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-pdo.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php-pdo.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-process.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php-process.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-xml.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php-xml.x86_64 0:5.4.16-46.1.el7_7 を アップデート ---> パッケージ php-xmlrpc.x86_64 0:5.4.16-46.el7 を 更新 ---> パッケージ php-xmlrpc.x86_64 0:5.4.16-46.1.el7_7 を アップデート --> 依存性解決を終了しました。 エラー: パッケージ: php-devel-5.4.16-46.el7.x86_64 (@rhel-7-server-optional-rpms) 要求: php-cli(x86-64) = 5.4.16-46.el7 削除中: php-cli-5.4.16-46.el7.x86_64 (@rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-46.el7 次のものにより更新された: : php-cli-5.4.16-46.1.el7_7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-46.1.el7_7 利用可能: php-cli-5.4.16-21.el7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-21.el7 利用可能: php-cli-5.4.16-23.el7_0.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-23.el7_0 利用可能: php-cli-5.4.16-23.el7_0.1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-23.el7_0.1 利用可能: php-cli-5.4.16-23.el7_0.3.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-23.el7_0.3 利用可能: php-cli-5.4.16-36.el7_1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-36.el7_1 利用可能: php-cli-5.4.16-36.1.el7_2.1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-36.1.el7_2.1 利用可能: php-cli-5.4.16-36.3.el7_2.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-36.3.el7_2 利用可能: php-cli-5.4.16-42.el7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-42.el7 利用可能: php-cli-5.4.16-43.el7_4.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-43.el7_4 利用可能: php-cli-5.4.16-43.el7_4.1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-43.el7_4.1 利用可能: php-cli-5.4.16-45.el7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-45.el7 エラー: パッケージ: php-mbstring-5.4.16-46.el7.x86_64 (@rhel-7-server-optional-rpms) 要求: php-common(x86-64) = 5.4.16-46.el7 削除中: php-common-5.4.16-46.el7.x86_64 (@rhel-7-server-rpms) php-common(x86-64) = 5.4.16-46.el7 次のものにより更新された: : php-common-5.4.16-46.1.el7_7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-46.1.el7_7 利用可能: php-common-5.4.16-21.el7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-21.el7 利用可能: php-common-5.4.16-23.el7_0.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-23.el7_0 利用可能: php-common-5.4.16-23.el7_0.1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-23.el7_0.1 利用可能: php-common-5.4.16-23.el7_0.3.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-23.el7_0.3 利用可能: php-common-5.4.16-36.el7_1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-36.el7_1 利用可能: php-common-5.4.16-36.1.el7_2.1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-36.1.el7_2.1 利用可能: php-common-5.4.16-36.3.el7_2.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-36.3.el7_2 利用可能: php-common-5.4.16-42.el7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-42.el7 利用可能: php-common-5.4.16-43.el7_4.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-43.el7_4 利用可能: php-common-5.4.16-43.el7_4.1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-43.el7_4.1 利用可能: php-common-5.4.16-45.el7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-45.el7 ********************************************************************** yum can be configured to try to resolve such errors by temporarily enabling disabled repos and searching for missing dependencies. To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf ********************************************************************** --> トランザクションの確認を実行しています。 ---> パッケージ kernel.x86_64 0:3.10.0-693.5.2.el7 を 削除 ---> パッケージ kernel-devel.x86_64 0:3.10.0-693.5.2.el7 を 削除 ---> パッケージ php-cli.x86_64 0:5.4.16-46.el7 を 更新 --> 依存性の処理をしています: php-cli(x86-64) = 5.4.16-46.el7 のパッケージ: php-devel-5.4.16-46.el7.x86_64 ---> パッケージ php-common.x86_64 0:5.4.16-46.el7 を 更新 --> 依存性の処理をしています: php-common(x86-64) = 5.4.16-46.el7 のパッケージ: php-mbstring-5.4.16-46.el7.x86_64 --> 依存性解決を終了しました。 エラー: パッケージ: php-devel-5.4.16-46.el7.x86_64 (@rhel-7-server-optional-rpms) 要求: php-cli(x86-64) = 5.4.16-46.el7 削除中: php-cli-5.4.16-46.el7.x86_64 (@rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-46.el7 次のものにより更新された: : php-cli-5.4.16-46.1.el7_7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-46.1.el7_7 利用可能: php-cli-5.4.16-21.el7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-21.el7 利用可能: php-cli-5.4.16-23.el7_0.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-23.el7_0 利用可能: php-cli-5.4.16-23.el7_0.1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-23.el7_0.1 利用可能: php-cli-5.4.16-23.el7_0.3.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-23.el7_0.3 利用可能: php-cli-5.4.16-36.el7_1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-36.el7_1 利用可能: php-cli-5.4.16-36.1.el7_2.1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-36.1.el7_2.1 利用可能: php-cli-5.4.16-36.3.el7_2.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-36.3.el7_2 利用可能: php-cli-5.4.16-42.el7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-42.el7 利用可能: php-cli-5.4.16-43.el7_4.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-43.el7_4 利用可能: php-cli-5.4.16-43.el7_4.1.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-43.el7_4.1 利用可能: php-cli-5.4.16-45.el7.x86_64 (rhel-7-server-rpms) php-cli(x86-64) = 5.4.16-45.el7 エラー: パッケージ: php-mbstring-5.4.16-46.el7.x86_64 (@rhel-7-server-optional-rpms) 要求: php-common(x86-64) = 5.4.16-46.el7 削除中: php-common-5.4.16-46.el7.x86_64 (@rhel-7-server-rpms) php-common(x86-64) = 5.4.16-46.el7 次のものにより更新された: : php-common-5.4.16-46.1.el7_7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-46.1.el7_7 利用可能: php-common-5.4.16-21.el7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-21.el7 利用可能: php-common-5.4.16-23.el7_0.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-23.el7_0 利用可能: php-common-5.4.16-23.el7_0.1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-23.el7_0.1 利用可能: php-common-5.4.16-23.el7_0.3.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-23.el7_0.3 利用可能: php-common-5.4.16-36.el7_1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-36.el7_1 利用可能: php-common-5.4.16-36.1.el7_2.1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-36.1.el7_2.1 利用可能: php-common-5.4.16-36.3.el7_2.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-36.3.el7_2 利用可能: php-common-5.4.16-42.el7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-42.el7 利用可能: php-common-5.4.16-43.el7_4.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-43.el7_4 利用可能: php-common-5.4.16-43.el7_4.1.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-43.el7_4.1 利用可能: php-common-5.4.16-45.el7.x86_64 (rhel-7-server-rpms) php-common(x86-64) = 5.4.16-45.el7 問題を回避するために --skip-broken を用いることができます。 これらを試行できます: rpm -Va --nofiles --nodigest
原因
rhel-7-server-optional-rpms リポジトリ(チャンネル)がenableでないと、当該事象が発生します。 上記リポジトリがenableであるかどうかは、yum repolistコマンドで確認することができます。
以下のような状態である(rhel-7-server-optional-rpmsがenableである)場合は、当該事象は発生しません。 rhel-7-server-optional-rpmsが結果に表示されない場合は、当該事象が発生する可能性があります。
# yum repolist 読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager リポジトリー ID リポジトリー名 状態 rhel-7-server-optional-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server - Optional (RPMs) 19,656 rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 27,011
対応
以下のコマンドを実行し、rhel-7-server-optional-rpmsリポジトリを追加します。
subscription-manager repos --enable rhel-7-server-optional-rpms
注意点
optionalリポジトリは、RHELのサポート対象ではない(RedHatのグローバルサポートサービスを受けられない)ため、導入に際しては注意が必要です。 https://access.redhat.com/ja/solutions/4387631
Red Hat では、Red Hat/Red Hat JBoss 製品の機能に加えて、お客様の利便性を向上させるソフトウェアパッケージ (RPM) を追加で提供しています。これらのソフトウェアパッケージには、オープンソースライセンスのソフトウェア (「Optional」Red Hat Network チャンネル) および商用ライセンスのソフトウェア (「Supplementary」Red Hat Network チャンネル) があります。Optional および Supplementary チャンネルのソフトウェアパッケージはサポート対象ではなく、ABI の保証も適用されません。
RHELでoptionalリポジトリに属するPHPパッケージは次のとおりです。
- php-bcmath
- php-devel
- php-embedded
- php-enchant
- php-dba
- php-fpm
- php-intl
- php-mbstring
- php-mysqlnd
- php-pspell
- php-snmp