在 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 的其他包。
用户首先需要更新到最新的仓库文件(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 问题跟踪器 创建一个问题(需要社区账户才能访问)。