2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[CentOS7] yum update で php 関連のエラーが発生

Last updated at Posted at 2022-07-11

アップデートでエラーが発生

久しぶりにアップデート作業を行うと以下のエラーが発生。

$ sudo yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                    | 8.3 kB  00:00:00     
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * nux-dextop: mirror.li.nux.ro
 * remi-safe: ftp.riken.jp
 * updates: ftp.riken.jp
base                                                                                    | 3.6 kB  00:00:00     
epel                                                                                    | 4.7 kB  00:00:00     
extras                                                                                  | 2.9 kB  00:00:00     
mariadb                                                                                 | 3.4 kB  00:00:00     
nux-dextop                                                                              | 2.9 kB  00:00:00     
remi-safe                                                                               | 3.0 kB  00:00:00     
updates                                                                                 | 2.9 kB  00:00:00     
(1/3): epel/x86_64/updateinfo                                                           | 1.1 MB  00:00:00     
(2/3): remi-safe/primary_db                                                             | 2.2 MB  00:00:00     
(3/3): epel/x86_64/primary_db                                                           | 7.0 MB  00:00:01     
Resolving Dependencies
--> Running transaction check
---> Package ImageMagick6-libs.x86_64 0:6.9.12.55-1.el7.remi will be updated
---> Package ImageMagick6-libs.x86_64 0:6.9.12.56-1.el7.remi will be an update
---> Package gd-last.x86_64 0:2.3.3-2.el7.remi will be obsoleted
--> Processing Dependency: gd-last(x86-64) >= 2.1.1 for package: php-gd-7.4.23-1.el7.remi.x86_64
--> Processing Dependency: libgd.so.3()(64bit) for package: php-gd-7.4.23-1.el7.remi.x86_64
---> Package gd3php.x86_64 0:2.3.3-7.el7.remi will be obsoleting
--> Finished Dependency Resolution
Error: Package: php-gd-7.4.23-1.el7.remi.x86_64 (@remi-php74)
           Requires: libgd.so.3()(64bit)
           Removing: gd-last-2.3.3-2.el7.remi.x86_64 (@remi-safe)
               libgd.so.3()(64bit)
           Obsoleted By: gd3php-2.3.3-7.el7.remi.x86_64 (remi-safe)
              ~libgd.so.103()(64bit)
Error: Package: php-gd-7.4.23-1.el7.remi.x86_64 (@remi-php74)
           Requires: gd-last(x86-64) >= 2.1.1
           Removing: gd-last-2.3.3-2.el7.remi.x86_64 (@remi-safe)
               gd-last(x86-64) = 2.3.3-2.el7.remi
           Obsoleted By: gd3php-2.3.3-7.el7.remi.x86_64 (remi-safe)
               Not found
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

『Obsoleted By: gd3php-2.3.3-7.el7.remi.x86_64』のメッセージが気になります。
gd3php が廃止された?
何か情報が古くなってるのでしょうか。

対処方法

最初に

--skip-broken オプションを付けて yum update を再実行してみました。
結果は変わらず同エラー。

$ sudo yum update --bkip-broken

次に

エラーに出てた gd3php がどのリポジトリにあるかを確認してみます。
コマンドの出力結果から remi にあるようです。

$ yum list --enablerepo=remi,epel gd3php
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * nux-dextop: mirror.li.nux.ro
 * remi: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Installed Packages
gd3php.x86_64                                      2.3.3-7.el7.remi                                       @remi

となると remi リポジトリの設定をまずは確認です。
リポジトリファイルを grep すると enabled が 0 となっておりデフォルト無効でした。
つまり普通にオプション無しで yum を使うと remi は対象外になります。

$ grep enabled /etc/yum.repos.d/remi.repo   
enabled=0

yum のオプションに --enablerepo を指定し remi リポジトリを有効化、その後アップデート実行。
しかしエラーは改善されず。

$ sudo yum update --enablerepo=remi

remi リポジトリは複数あるため、リポジトリ名 remi の後ろにワイルドカード付けて再実行。
結果はようやくアップデート成功!

$ sudo yum update --enablerepo=remi*

結論

必要に応じてアップデート時にも --enablerepo オプションを付け、外部リポジトリの有効化をしましょう。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?