Centos
在 CentOS-8 中安裝 postgresql-12 得到 No match for argument: postgresql12
我正在嘗試在 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 有關),則過濾器預設不會過濾它們。