Centos

在 CentOS-8 中安裝 postgresql-12 得到 No match for argument: postgresql12

  • June 10, 2021

我正在嘗試在 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

嘗試 :

sudo dnf --repo pgdg12 install  postgresql12-server.x86_64
sudo dnf --repo pgdg12 list

沒有--repo pgdg12,這對我不起作用。

仍在尋找這種行為的原因……

替代和更舒適的解決方案:添加module_hotfixes=true到 pgdg 儲存庫定義或禁用 AppStream 模組 如果您使用 pgdg build ( dnf -y module disable postgresql),您可能永遠不想使用。

據我了解,這是必要的,因為 EL8 引入了新的模組系統。

如果 dnf 檢測到 pgdg 包提供的東西也在模組中,但它們本身沒有打包為適當的模組,則預設情況下會過濾 pgdg 包。

我不知道如何在 yum repos 中定義模組,但如果 pgdg 會這樣做,那麼可能沒有它,或者甚至更好地能夠像其他 AppStream 模組一樣將它們作為模組處理(至少與 afaik 類似,模組版本是不是為並行安裝而設計的,僅用於主要版本的選擇)。或者,如果他們會更改他們的包簽名(我認為這與提供的 postgresql 有關),則過濾器預設不會過濾它們。

引用自:https://unix.stackexchange.com/questions/545635