PHPがアップデートできない!
※この事例は、remiリポジトリを使用しています。またPHP71を対象としています。remiリポジトリを使っていない場合は参考にならないかも知れません。PHP71以外のバージョンでは適宜コマンドの指定を変えてください。ご注意ください!
CentOS 7.5-1804でyum updateを実施しようとしたら、アップデートが出来ませんでした。
手動でPHP以外のアップデートを済ませて再度確認を行った結果、以下のエラーが原因でした。
Error: Package: php-phpmyadmin-sql-parser-4.2.5-1.el7.noarch (epel)
Requires: php-composer(phpmyadmin/motranslator) < 4
Installed: php-phpmyadmin-motranslator-4.0-1.el7.remi.noarch (@remi)
php-composer(phpmyadmin/motranslator) = 4.0
Available: php-phpmyadmin-motranslator-3.4-1.el7.noarch (epel)
php-composer(phpmyadmin/motranslator) = 3.4
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
当然、–skip-brokenとかやる気は全く無いので、ググってみると同様の現象に見舞われている方を発見!
そのQAに書かれている内容を見て何となく方向性は判ったのだが、どうも気に掛かる。
やっぱり1個足りない気がする。。。。
危なっかしいので、万が一のことを想定しスナップショット(バックアップ)を取得してから以下の手順を順次実施した。
アップデート手順
まずは、障害を取り除く
まず最初にエラーメッセージ記載されているパッケージを以下のコマンドで削除する。
# yum remove remove php-phpmyadmin-sql-parser.noarch php-phpmyadmin-motranslator.noarch
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package php-phpmyadmin-motranslator.noarch 0:4.0-1.el7.remi will be erased
--> Processing Dependency: php-phpmyadmin-motranslator >= 4.0 for package: phpMyAdmin-4.8.2-1.el7.remi.noarch
---> Package php-phpmyadmin-sql-parser.noarch 0:4.2.4-3.el7.remi will be erased
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.8.2-1.el7.remi will be erased
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Removing:
php-phpmyadmin-motranslator noarch 4.0-1.el7.remi @remi 53 k
php-phpmyadmin-sql-parser noarch 4.2.4-3.el7.remi @remi 797 k
Removing for dependencies:
phpMyAdmin noarch 4.8.2-1.el7.remi @remi 24 M
Transaction Summary
================================================================================
Remove 2 Packages (+1 Dependent package)
Installed size: 25 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : phpMyAdmin-4.8.2-1.el7.remi.noarch 1/3
warning: /etc/phpMyAdmin/config.inc.php saved as /etc/phpMyAdmin/config.inc.php.rpmsave
warning: /etc/httpd/conf.d/phpMyAdmin.conf saved as /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave
Erasing : php-phpmyadmin-sql-parser-4.2.4-3.el7.remi.noarch 2/3
Erasing : php-phpmyadmin-motranslator-4.0-1.el7.remi.noarch 3/3
Verifying : php-phpmyadmin-motranslator-4.0-1.el7.remi.noarch 1/3
Verifying : php-phpmyadmin-sql-parser-4.2.4-3.el7.remi.noarch 2/3
Verifying : phpMyAdmin-4.8.2-1.el7.remi.noarch 3/3
Removed:
php-phpmyadmin-motranslator.noarch 0:4.0-1.el7.remi
php-phpmyadmin-sql-parser.noarch 0:4.2.4-3.el7.remi
Dependency Removed:
phpMyAdmin.noarch 0:4.8.2-1.el7.remi
Complete!
Dependencies ResolvedとDependencies Removedの項目にも書かれているが、phpMyAdminもトランザクションの影響で削除されている。
こういう時、yum -yオプションは避けた方が良いだろう。
必要なパッケージを再度インストールして更新する。
とりあえず、参考にしたサイトに記載されていた内容でインストールしてみた。その手順が以下になる。
# yum install --enablerepo=remi,php71 php-phpmyadmin-sql-parser.noarch php-phpmyadmin-motranslator.noarch
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.riken.jp
* extras: ftp.iij.ad.jp
* remi: ftp.riken.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package php-phpmyadmin-motranslator.noarch 0:4.0-1.el7.remi will be installed
---> Package php-phpmyadmin-sql-parser.noarch 0:4.3.2-1.el7.remi will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
php-phpmyadmin-motranslator noarch 4.0-1.el7.remi remi 20 k
php-phpmyadmin-sql-parser noarch 4.3.2-1.el7.remi remi 166 k
Transaction Summary
================================================================================
Install 2 Packages
Total download size: 187 k
Installed size: 915 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): php-phpmyadmin-motranslator-4.0-1.el7.remi.noarch.r | 20 kB 00:00
(2/2): php-phpmyadmin-sql-parser-4.3.2-1.el7.remi.noarch.r | 166 kB 00:00
--------------------------------------------------------------------------------
Total 685 kB/s | 187 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : php-phpmyadmin-motranslator-4.0-1.el7.remi.noarch 1/2
Installing : php-phpmyadmin-sql-parser-4.3.2-1.el7.remi.noarch 2/2
Verifying : php-phpmyadmin-motranslator-4.0-1.el7.remi.noarch 1/2
Verifying : php-phpmyadmin-sql-parser-4.3.2-1.el7.remi.noarch 2/2
Installed:
php-phpmyadmin-motranslator.noarch 0:4.0-1.el7.remi
php-phpmyadmin-sql-parser.noarch 0:4.3.2-1.el7.remi
Complete!
やっぱり、phpMyAdminがインストールされていない!
phpMyAdminを明示的に入れる必要があるわけで、以下のコマンドでインストールを行う。
# yum install --enablerepo=remi,php71 phpMyAdmin.noarch
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.riken.jp
* extras: ftp.iij.ad.jp
* remi: ftp.riken.jp
* remi-safe: ftp.riken.jp
* updates: ftp.iij.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.9.0.1-1.el7.remi will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
phpMyAdmin noarch 4.9.0.1-1.el7.remi remi 5.3 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 5.3 M
Installed size: 26 M
Is this ok [y/d/N]: y
Downloading packages:
phpMyAdmin-4.9.0.1-1.el7.remi.noarch.rpm | 5.3 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : phpMyAdmin-4.9.0.1-1.el7.remi.noarch 1/1
Verifying : phpMyAdmin-4.9.0.1-1.el7.remi.noarch 1/1
Installed:
phpMyAdmin.noarch 0:4.9.0.1-1.el7.remi
Complete!
無事入りました!
ちなみに、こちらはremiを使ってPHP71の事例となっていますが、その他のバージョンに関しては適宜バージョン指定を変えてくださいね。