dnf updateしたらphp-pgsqlのエラー
dnf updateしたらエラーになったので調べた時の覚書。
環境: CentOS Stream 8, PHP 7.4.30
# dnf update
Last metadata expiration check: 8:04:20 ago on Fri 21 Oct 2022 07:49:06 AM JST.Error:Problem: package php-pgsql-7.4.30-1.module_el8.7.0+1190+d11b935a.x86_64 requires libpq.so.5(RHPG_9.6)(64bit), but none of the providers can be installed- cannot install both libpq5-15.0-42PGDG.rhel8.x86_64 and libpq5-14.5-42PGDG.rhel8.x86_64- package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.2-1.el8.x86_64- package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.3-1.el8_4.x86_64- package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.5-1.el8.x86_64- cannot install the best update candidate for package php-pgsql-7.4.30-1.module_el8.7.0+1190+d11b935a.x86_64- cannot install the best update candidate for package libpq5-14.5-42PGDG.rhel8.x86_64(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
libpq5-15.0をインストールしようとしているけどphp-pgsqlがlibpq5-14.5を使っているから出来ないというエラー(だと思う)
仮想環境なのでスナップショットをとる。
php-pgsqlをとりあえずアンインストール
# dnf remove php-pgsql
アップデート
# dnf update
libpq5-15.0にアップデートされた。
これでphp-pgsqlをインストールしてみる。
# dnf install php-pgsql
libpq5-14.5がインストールされた。
# dnf update
最初のエラーと同じ。
元に戻す
# dnf remove php-pgsql
# dnf update
PHP8にしたら解決できるのかと思ってやってみた。
# dnf module reset php
# dnf module enable php:8.0
# dnf --allowerasing distro-sync
確認
# php --version
PHP Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib64/php/modules/imagick.so (/usr/lib64/php/modules/imagick.so: undefined symbol: instanceof_function), /usr/lib64/php/modules/imagick.so.so (/usr/lib64/php/modules/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0PHP Warning: PHP Startup: mecab: Unable to initialize moduleModule compiled with module API=20190902PHP compiled with module API=20200930These options need to matchin Unknown on line 0PHP 8.0.20 (cli) (built: Jun 8 2022 00:33:06) ( NTS gcc x86_64 )Copyright (c) The PHP GroupZend Engine v4.0.20, Copyright (c) Zend Technologieswith Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
imagickとmecabでエラーになっている。
これは後で再ビルドするので、とりあえず削除する。
# cd /etc/php.d/
# rm -f imagick.ini mecab.ini
確認
# php --version
PHP 8.0.20 (cli) (built: Jun 8 2022 00:33:06) ( NTS gcc x86_64 )Copyright (c) The PHP GroupZend Engine v4.0.20, Copyright (c) Zend Technologieswith Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
本題のphp-pgsqlをインストールする。
# dnf install php-pgsql
libpq5-14.5をインストールしようとしてる…。
今のところlibpq5-15.0にしたらダメだということが分かった。
スナップショットで元に戻した。
PostgreSQLのYUMリポジトリを停止する。
# cd /etc/yum.repos.d/
# less pgdg-redhat-all.repo
[pgdg-common]enabled=0
確認
# dnf update
しばらくはこれで運用する。