安装PostGIS导致PostgreSQL 14升级至15的问题及解决方案咨询
问题原因分析
- 直接安装
postgis包时,它作为元包会默认依赖最新版本的PostgreSQL(当前为15.3),触发系统自动将你的PostgreSQL 14.8升级到15.3。 - 修改源配置时将
main替换为14是错误操作——PGDG源的格式为deb http://apt.postgresql.org/pub/repos/apt/ [发行版代号]-pgdg main,其中main是软件包组件分类,并非PostgreSQL版本号,系统无法识别该错误配置,因此找不到指定包。
解决步骤
1. 恢复正确的PGDG源配置
先将错误的源改回默认格式:
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list sudo apt update
2. 固定PostgreSQL 14版本,防止自动升级
创建APT优先级配置文件,强制系统优先选择PostgreSQL 14相关包:
sudo tee /etc/apt/preferences.d/pin-postgresql-14 <<EOF Package: postgresql-14* postgresql-client-14* Pin: release o=apt.postgresql.org Pin-Priority: 1001 EOF
Pin-Priority: 1001表示该优先级高于所有其他源,确保现有PostgreSQL 14不会被更高版本替换。
3. 安装包含shp2pgsql的PostGIS工具(不升级PostgreSQL)
执行以下命令,系统会在保持PostgreSQL 14的前提下,安装兼容的PostGIS及shp2pgsql工具:
sudo apt -y install postgis postgresql-14-postgis-3 postgresql-14-postgis-3-scripts
验证结果
- 检查PostgreSQL版本:
psql --version,应显示14.8 - 检查shp2pgsql是否可用:
shp2pgsql --version,应正常输出版本信息
内容的提问来源于stack exchange,提问作者Marc Le Bihan
相关产品推荐
相关产品推荐

