CentOS-8にpostgresql-12をインストールしようとしています。postgresql.org
ウェブサイトに従ってpostgresqlリポジトリを追加しました。https://www.postgresql.org/download/linux/redhat/
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
これでリポジトリを追加しました。
[root@centos8cmd ~]# dnf repolist
Last metadata expiration check: 0:08:03 ago on Tue 08 Oct 2019 03:29:54 AM GMT.
repo id repo name status
AppStream CentOS-8 - AppStream 4,928
BaseOS CentOS-8 - Base 2,713
*epel Extra Packages for Enterprise Linux 8 - x86_64 1,816
extras CentOS-8 - Extras 3
pgdg10 PostgreSQL 10 for RHEL/CentOS 8 - x86_64 509
pgdg11 PostgreSQL 11 for RHEL/CentOS 8 - x86_64 531
pgdg12 PostgreSQL 12 for RHEL/CentOS 8 - x86_64 382
pgdg94 PostgreSQL 9.4 for RHEL/CentOS 8 - x86_64 188
pgdg95 PostgreSQL 9.5 for RHEL/CentOS 8 - x86_64 327
pgdg96 PostgreSQL 9.6 for RHEL/CentOS 8 - x86_64 487
[root@centos8cmd ~]#
しかし、コマンドを実行しようとすると
dnf install postgresql12
dnf install postgresql12-server
次のメッセージを受け取りました!
No match for argument: postgresql12
Error: Unable to find a match
答え1
より便利な代替ソリューション:pgdgリポジトリ定義に追加したり、module_hotfixes=true
おそらく使用したくないpgdg build()を使用している場合は、AppStreamモジュールを無効にしてください。私が理解したように、これはEL8に導入された新しいモジュールシステムのために必要です。 dnf は、pgdg パッケージで提供されるコンテンツがモジュールにもあるが、それ自体が適切なモジュールにパッケージされていないことを検出すると、デフォルトで pgdg パッケージをフィルタリングします。 dnf -y module disable postgresql
yumリポジトリでモジュールを定義する方法がわかりませんが、pgdgがモジュールを定義している場合は、モジュールなしで可能であるか、他のAppStreamモジュールと同じようにモジュールとして処理する方が良いかもしれません(少なくともモジュールバージョンに似ています)。並列インストールに適しており、メジャーバージョンの選択にのみ適用されます。あるいは、パッケージ署名を変更した場合(postgresqlの提供に関連していると思われる)、フィルタはデフォルトでそれをフィルタリングしません。
答え2
AppStreamでストリーミングモジュールを無効にpostgresql
し、pgdgリポジトリでpostgresパッケージをロック解除する必要があります。
dnf module disable postgresql
詳細については、次を参照してください。CentOS 8およびRHEL 8のPostgreSQL
答え3
努力する:
sudo dnf --repo pgdg12 install postgresql12-server.x86_64
sudo dnf --repo pgdg12 list
そうでなければ、--repo pgdg12
これは私には適していません。
それでもこの動作の原因を探しています...