在 Red Hat Enterprise Linux 8 的最新 3 個小版本中,Red Hat 破壞了 LLVM 與先前小版本的相容性(例如在 RHEL 8.1 中引入 LLVM 8,在 RHEL 8.2 中引入 LLVM 9,在 RHEL 8.3 中引入 LLVM 10)。
這破壞了與先前版本的相容性,並且還會影響安裝了 llvmjit 子套件的使用者的 PostgreSQL 更新。負面影響是
RHEL:使用者必須等到套件重建後才能更新到新的 LLVM。這個問題已經通過立即將建置伺服器更新到新的小版本並重建受影響的套件來解決。
CentOS 落後於 RHEL,也受到此破壞的重大影響,阻礙了 PostgreSQL 小版本更新。 這是需要解決的問題。
今天,我們為 CentOS 8 使用者發布了一個名為 “pgdg-centos8-sysupdates” 的新軟體庫。 這個軟體庫從最新的 RHEL 引入 LLVM 和 CLANG 套件(當然,使用我們自己的金鑰重建和簽署),以滿足 llvmjit 依賴性。 請注意,這是可選的,因為它可能會破壞其他依賴於舊版本 LLVM 和 CLANG 的套件(如果有的話)。 此功能適用於 PostgreSQL 11 及更高版本。
使用者首先需要更新到最新的軟體庫檔案 (dnf -y update pgdg-redhat-repo) 才能從此功能受益,撰寫本文時為 42.0.15。
以下是啟用此軟體庫的步驟
dnf -qy module disable postgresql llvm-toolset rust-toolset dnf config-manager --set-enabled pgdg-centos8-sysupdates
(停用 rust-toolset 不是必須的,但是 dnf 否則會發出警告,因為它對 llvm-toolset 模組有依賴關係)。
完成此操作後,您可以正常更新或安裝 llvmjit 套件。
如果您有任何問題/意見,請發送電子郵件至 pgsql-pkg-yum@lists.postgresql.org,或在PostgreSQL 社群 RPM 問題追蹤器建立問題(需要社群帳戶才能訪問)