yum update で PHP のアップデートが失敗します
TOP › Forums › インストール(Installing KUSANAGI) › yum update で PHP のアップデートが失敗します
yum update で PHP のアップデートが失敗します
- This topic has 5 replies, 3 voices, and was last updated 7 years, 6 months ago by shimizu.
-
AuthorPosts
-
-
2017年5月31日 at 16:42 #209
お世話になります。
KUSANAGI for さくらのVPS で KUSANAGIを利用させていただいております。PHPのアップデートを実行しようとしたところ、アップデートに失敗いたしました。
FQAの回答を確認し、当該手順を実施いたしましたが、結果は変わりませんでした。# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)
# rpm -qa | grep kusanagi kusanagi-nginx-1.13.0-1.noarch kusanagi-php7-7.0.19-1.noarch kusanagi-8.0.7-2.noarch kusanagi-hhvm-3.19.1-1.noarch kusanagi-libbrotli-1.0pre1-3.noarch kusanagi-openssl-1.0.2k-1.noarch kusanagi-httpd-2.4.25-1.noarch kusanagi-mozjpeg-3.2-1.el7.centos.x86_64 kusanagi-wp-cli-1.1.0-1.noarch kusanagi-nghttp2-1.6.0-2.noarch kusanagi-wp-4.7.5-1.noarch
実施内容は次の通りです。
# yum clean all 読み込んだプラグイン:fastestmirror, langpacks, priorities Repository remi-safe is listed more than once in the configuration Repository remi-php71 is listed more than once in the configuration リポジトリーを清掃しています: base epel extras kusanagi mariadb remi remi-php71 remi-safe updates zabbix zabbix-non-supported Cleaning up everything Cleaning up list of fastest mirrors # yum --enablerepo=remi,remi-php71 update -y 読み込んだプラグイン:fastestmirror, langpacks, priorities Repository remi-safe is listed more than once in the configuration Repository remi-php71 is listed more than once in the configuration
結果は下記のものが出力されます。
Determining fastest mirrors * base: ftp.iij.ad.jp * epel: ftp.riken.jp * extras: ftp.iij.ad.jp * remi: mirror.bebout.net * remi-php71: mirror.bebout.net * remi-safe: mirror.bebout.net * updates: ftp.iij.ad.jp zabbix 144/144 zabbix-non-supported 4/4 408 packages excluded due to repository priority protections 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ php.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-cli.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-cli.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-common.x86_64 0:5.6.30-1.el7.remi を 更新 --> 依存性の処理をしています: php(api) = 20131106-64 のパッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 --> 依存性の処理をしています: php(zend-abi) = 20131226-64 のパッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 ---> パッケージ php-common.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-devel.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-devel.x86_64 0:7.1.5-1.el7.remi を 非推奨 ---> パッケージ php-fpm.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-fpm.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-gd.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-gd.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-json.x86_64 0:7.1.5-1.el7.remi を 非推奨 ---> パッケージ php-mbstring.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-mbstring.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-mcrypt.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-mcrypt.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-mysqlnd.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-mysqlnd.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-pdo.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-pdo.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-pecl-jsonc.x86_64 0:1.3.10-2.el7.remi.5.6 を 不要 ---> パッケージ php-pecl-jsonc-devel.x86_64 0:1.3.10-2.el7.remi.5.6 を 不要 ---> パッケージ php-pecl-zip.x86_64 0:1.14.0-1.el7.remi.5.6 を 更新 ---> パッケージ php-pecl-zip.x86_64 0:1.14.0-1.el7.remi.7.1 を アップデート ---> パッケージ php-process.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-process.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-xml.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-xml.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-xmlrpc.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-xmlrpc.x86_64 0:7.1.5-1.el7.remi を アップデート --> 依存性解決を終了しました。 エラー: パッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 (@remi-php56) 要求: php(zend-abi) = 20131226-64 削除中: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56) php(zend-abi) = 20131226-64 次のものにより更新された: : php-common-7.1.5-1.el7.remi.x86_64 (remi-php71) php(zend-abi) = 20160303-64 利用可能: php-common-7.1.4-1.el7.remi.x86_64 (remi-php71) php(zend-abi) = 20160303-64 エラー: パッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 (@remi-php56) 要求: php(api) = 20131106-64 削除中: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56) php(api) = 20131106-64 次のものにより更新された: : php-common-7.1.5-1.el7.remi.x86_64 (remi-php71) php(api) = 20160303-64 利用可能: php-common-7.1.4-1.el7.remi.x86_64 (remi-php71) php(api) = 20160303-64 問題を回避するために --skip-broken を用いることができます。 これらを試行できます: rpm -Va --nofiles --nodigest
私なりの調査では以下内容まで把握できております。
- 「/etc/yum.conf」に設定している除外対象の内、”exclude=php-pecl-apcu*”を除外対象から外すとアップデートが可能になる。(コマンドに対するエラー出力がなくなる)
- エラー出力内容の「問題を回避するために –skip-broken を用いる」を実施しても、解決しない。(エラー出力となります。)
除外しているパッケージを勝手にアップデートしてはよろしくないと思い、質問しました。
上記問題について、原因及び、解決方法をご教授願います。
よろしくお願いいたします。 -
2017年5月31日 at 16:52 #210
shimizuさん、こんにちは。
# yum –enablerepo=remi,remi-php71 update -y
上記アップデートを行っているとするとちょっとFAQの情報とは違いますね。
# yum –enablerepo=remi,remi-php56 update -y
KUSANAGIが標準で持っているPHPはPHP 5.6、PHP 7、HHVMです。
このうちremiでアップデートを行っているのはPHP 5.6であり、これは後方互換性のために導入されています。
ですので、remi-php71を実行しているとすればバージョンがKUSANAGIのもつPHPと競合している可能性があります。一度FAQ通りのコマンドで実行してみて頂けますか。
よろしくお願いします。 -
2017年5月31日 at 17:23 #211
お世話になっております。
早速の回答ありがとうございます。PHP 5.6 実施した場合でも、同じ結果となります。
# yum --enablerepo=remi,remi-php56 update -y 読み込んだプラグイン:fastestmirror, langpacks, priorities Repository remi-safe is listed more than once in the configuration Repository remi-php71 is listed more than once in the configuration Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.riken.jp * extras: ftp.iij.ad.jp * remi: mirror.bebout.net * remi-php56: mirror.bebout.net * remi-php71: mirror.bebout.net * remi-safe: mirror.bebout.net * updates: ftp.iij.ad.jp 681 packages excluded due to repository priority protections 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ php.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-cli.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-cli.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-common.x86_64 0:5.6.30-1.el7.remi を 更新 --> 依存性の処理をしています: php(api) = 20131106-64 のパッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 --> 依存性の処理をしています: php(zend-abi) = 20131226-64 のパッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 ---> パッケージ php-common.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-devel.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-devel.x86_64 0:7.1.5-1.el7.remi を 非推奨 ---> パッケージ php-fpm.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-fpm.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-gd.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-gd.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-json.x86_64 0:7.1.5-1.el7.remi を 非推奨 ---> パッケージ php-mbstring.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-mbstring.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-mcrypt.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-mcrypt.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-mysqlnd.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-mysqlnd.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-pdo.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-pdo.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-pecl-jsonc.x86_64 0:1.3.10-2.el7.remi.5.6 を 不要 ---> パッケージ php-pecl-jsonc-devel.x86_64 0:1.3.10-2.el7.remi.5.6 を 不要 ---> パッケージ php-pecl-zip.x86_64 0:1.14.0-1.el7.remi.5.6 を 更新 ---> パッケージ php-pecl-zip.x86_64 0:1.14.0-1.el7.remi.7.1 を アップデート ---> パッケージ php-process.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-process.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-xml.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-xml.x86_64 0:7.1.5-1.el7.remi を アップデート ---> パッケージ php-xmlrpc.x86_64 0:5.6.30-1.el7.remi を 更新 ---> パッケージ php-xmlrpc.x86_64 0:7.1.5-1.el7.remi を アップデート --> 依存性解決を終了しました。 エラー: パッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 (@remi-php56) 要求: php(zend-abi) = 20131226-64 削除中: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56) php(zend-abi) = 20131226-64 次のものにより更新された: : php-common-7.1.5-1.el7.remi.x86_64 (remi-php71) php(zend-abi) = 20160303-64 利用可能: php-common-7.1.4-1.el7.remi.x86_64 (remi-php71) php(zend-abi) = 20160303-64 エラー: パッケージ: php-pecl-apcu-4.0.11-2.el7.remi.5.6.x86_64 (@remi-php56) 要求: php(api) = 20131106-64 削除中: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56) php(api) = 20131106-64 次のものにより更新された: : php-common-7.1.5-1.el7.remi.x86_64 (remi-php71) php(api) = 20160303-64 利用可能: php-common-7.1.4-1.el7.remi.x86_64 (remi-php71) php(api) = 20160303-64 問題を回避するために --skip-broken を用いることができます。 これらを試行できます: rpm -Va --nofiles --nodigest
リポジトリの呼出しの部分で、”remi-php71”が含まれていたため、PHP 7系もremiを利用してアップデートするものだと先走っておりました。申し訳ございません。
運営ではPHP 7系を利用していく予定であります。
よろしければ、PHP 7系のアップデート方法が別にありましたらご教授願います。 -
2017年6月1日 at 01:45 #212
PHP7系はKUSANAGI独自でビルドされたものがKUSANAGIのリポジトリから提供されています。
PHP7系を利用したい場合でも、remiリポジトリからPHP7系を入れる必要はありません。おそらくyum.repo.d の remi-php71 をenableにしているかと思いますので、それをdisableに変更するか下記のようなコマンドならアップデート行えるかと思います。
yum --disablerepo=remi-php71 -–enablerepo=remi,remi-php56 update -y
また、PHP7系への切り替えはドキュメントにもある通り下記コマンドで切りかえることができます。
kusanagi php7
詳しくはドキュメントを参照してください。
https://kusanagi.tokyo/document/command/#php7-
2017年6月2日 at 09:42 #219
Tanuki様
お世話になります。
返事が遅くなり申し訳ありません。
本件問題、解決することが出来ました。今回の問題はご指摘をいただきましたとおり、remi-php71 が有効になっていたため、互換性の問題があり、アップデートに失敗しておりました。
ご提供いただきましたコマンドを実施いたしましたところ、問題なくアップデートが完了いたしました。
yum --disablerepo=remi-php71 --enablerepo=remi,remi-php56 update -y
今後のための対応としては、リポジトリ”remi-php71”をdisableにし運用しようと思います。
ご協力頂きありがとうございました。
-
-
2017年6月2日 at 09:50 #222
しょうくん様
お世話になります。
先日はご回答頂きありがとうございます。
当フォーラムの仕様を理解しておらず、回答いただきました物に対し、返事をしていない事になっておりました。申し訳ありません。本件につきましては、Tanuki様の回答をもって、解決することが出来ました。
しょうくん様におかれましても、
ご協力頂きありがとうございました。
-
-
AuthorPosts
- You must be logged in to reply to this topic.