CentOS Stream 9 でImageMagickが原因でDNFのアップデートがエラーになったときの対処
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
タイトルのとおりですがImageMagickが原因でDNFのアップデートがエラーになっていたので修復した時の記録です。
環境
実施日 | 2023-01-31 |
サーバ | さくらのVPS 2G |
OS | CentOS Stream 9 |
cat /etc/redhat-release
CentOS Stream release 9
経緯
DNFのアップデートでエラーが出ていることに気が付きました。
そこで手動で実行してみると次のような表示がでてきます。
dnf update --enablerepo=epel,remi
Extra Packages for Enterprise Linux 9 - x86_64 8.0 kB/s | 5.0 kB 00:00
Extra Packages for Enterprise Linux 9 - x86_64 7.2 MB/s | 13 MB 00:01
Remi's RPM repository for Enterprise Linux 9 - x86_64 510 B/s | 833 B 00:01
Remi's RPM repository for Enterprise Linux 9 - x86_64 486 kB/s | 2.1 MB 00:04
メタデータの期限切れの最終確認: 0:00:02 時間前の 2023年01月31日 16時49分24秒 に実施しました。
エラー:
問題 1: パッケージの最良アップデート候補をインストールできません ImageMagick-devel-6.9.12.40-1.el9.x86_64
- jasper-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- OpenEXR-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- ghostscript-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- jbigkit-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- openjpeg2-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
問題 2: インストール済パッケージの問題 ImageMagick-devel-6.9.12.40-1.el9.x86_64
- パッケージ ImageMagick-devel-6.9.12.40-1.el9.x86_64 には ImageMagick(x86-64) = 6.9.12.40-1.el9 が必要ですが、どのプロバイダーからもインストールできません
- パッケージ ImageMagick-devel-6.9.12.70-1.el9.x86_64 には ImageMagick(x86-64) = 6.9.12.70-1.el9 が必要ですが、どのプロバイダーからもインストールできません
- ImageMagick-1:6.9.12.73-1.el9.remi.x86_64 と ImageMagick-6.9.12.40-1.el9.x86_64 どちらもインストールできません
- ImageMagick-1:6.9.12.73-1.el9.remi.x86_64 と ImageMagick-6.9.12.70-1.el9.x86_64 どちらもインストールできません
- パッケージの最良アップデート候補をインストールできません ImageMagick-6.9.12.40-1.el9.x86_64
- jasper-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.72-1.el9.remi.x86_64 に必要です
- OpenEXR-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.72-1.el9.remi.x86_64 に必要です
- ghostscript-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.72-1.el9.remi.x86_64 に必要です
- jbigkit-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.72-1.el9.remi.x86_64 に必要です
- openjpeg2-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.72-1.el9.remi.x86_64 に必要です
- jasper-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- OpenEXR-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- ghostscript-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- jbigkit-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
- openjpeg2-devel(x86-64) が提供されません ImageMagick-devel-1:6.9.12.73-1.el9.remi.x86_64 に必要です
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを 使用しないでください)
「ImageMagick」という文字がいっぱい目に入ってきます。
見るからに「ImageMagick」に原因がありそうですね。
ImageMagickを使う目的
本サーバの目的がWEBサーバでPHPから画像を扱うためにインストールしています。
解決した方法
いろいろ調査とか試行錯誤したところは省略します。
結果的には「削除してインストールしなおし」としました。
ちなみにPHPとImageMagicのインストールは下記に記しています。
CentOS Stream 9 にPHP8.1をDNFでインストール
それでは手順を記していきます。
ImageMagick を削除する
とりあえずはDNFアップデートをしたいので、エラーの原因であるImageMagicを削除します。
dnf remove ImageMagick
DNFをアップデートする
epel と remi をつけてアップデートします。
dnf update --enablerepo=epel,remi
ImageMagick をインストールする
CentOS Stream 9 の場合は epel を使います。
dnf --enablerepo=epel install ImageMagick ImageMagick-devel
PHPとImageMagicを紐づける
最初の手順でImageMagicを削除したことでPHPから外れていますので、 pecl install しなおします。
pecl install imagick
httpd を再起動
httpdを再起動して反映させます。
systemctl restart httpd.service
確認
phpinfo(); のページを用意しておくと分かりやすいです。