CentOS 7でPHPのアップデートがErrorになる

Pocket

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の事例となっていますが、その他のバージョンに関しては適宜バージョン指定を変えてくださいね。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください