CentOS 8系统安装PostGIS31_12提示无法安装最佳候选包如何解决?
解决CentOS 8 下PostGIS 3.1 for PostgreSQL 12安装依赖缺失问题
1. 启用pgdg-common仓库
当前核心问题是pgdg-common仓库未正常启用,所有缺失的依赖包都来自该仓库,按以下步骤修复:
- 检查pgdg统一源配置文件是否存在:
ls /etc/yum.repos.d/pgdg-redhat-all.repo
- 若文件存在,编辑该文件,定位到
[pgdg-common]配置段,将enabled=0修改为enabled=1后保存。 - 若文件不存在,重新安装官方统一源包并重建dnf缓存:
dnf reinstall -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf clean all && dnf makecache
- 验证仓库已正常启用:
dnf repolist enabled | grep pgdg-common
执行后有返回值即为配置生效。
2. 确认前置源配置正常
- 确认EPEL源已安装:
dnf list installed epel-release || dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
- 确认PowerTools仓库已启用:
dnf repolist enabled | grep PowerTools || dnf config-manager --set-enabled PowerTools
3. 重新安装PostGIS
dnf install -y postgis31_12
异常场景排查
如果上述操作后仍安装失败,按以下规则排查:
- 检查
/etc/yum.repos.d/目录下是否存在旧的单版本PostgreSQL源文件(如pgdg12.repo),如有请删除后重建缓存重试,旧的单版本源会和统一源冲突导致pgdg-common仓库无法加载。 - 检查
/etc/dnf/dnf.conf配置文件中的exclude字段,确认没有屏蔽pgdg相关的包规则。
内容的提问来源于stack exchange,提问作者nonethewiser
相关产品推荐
相关产品推荐

