我正在尝试在 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 存储库定义或禁用 AppStream 模块 如果您使用 pgdg build ( ),module_hotfixes=true
您可能永远不想使用。 据我了解,这是必要的,因为 EL8 引入了新的模块系统。 如果 dnf 检测到 pgdg 包提供的内容也在模块中但本身未打包为适当的模块,则默认情况下会过滤 pgdg 包。 dnf -y module disable postgresql
我不知道如何在 yum 存储库中定义模块,但如果 pgdg 会这样做,那么没有它可能是可能的,甚至更好地能够像其他 AppStream 模块一样将它们处理为模块(至少与模块版本类似)不适用于并行安装,仅用于选择主要版本)。或者,如果他们更改包签名(我认为这与提供 postgresql 有关),则默认情况下过滤器不会过滤它们。
答案2
您需要禁用postgresql
AppStream 中的流模块,解锁 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
,这对我不起作用。
仍在寻找这种行为的原因......