You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Amazon Linux下PostgreSQL9.6安装PostGIS依赖错误求助

解决Amazon Linux上PostgreSQL 9.6安装PostGIS 2.4的依赖缺失问题

我之前在Amazon Linux上部署PostGIS时也碰到过几乎一模一样的依赖问题,给你几个可行的排查和解决方向:

1. 排查仓库优先级冲突

你看到的*23 packages excluded due to repository priority protections*是关键线索——pgdg96(PostgreSQL官方仓库)的优先级可能高于EPEL,导致yum优先从pgdg96寻找依赖,但这些依赖包并不在pgdg96仓库内。

  • 先确认EPEL仓库已正常启用:
    yum repolist enabled | grep epel
    
  • 调整仓库优先级:编辑/etc/yum.repos.d/pgdg-96.repo,找到priority配置项(如果没有就新增一行),将其值设为比EPEL更高的数字(数字越小优先级越高,比如EPEL默认优先级是10,就把pgdg96的priority=20),这样yum会优先从EPEL获取所需依赖包。

2. 手动安装缺失的依赖包

尝试直接从EPEL和Amazon官方仓库安装报错中列出的依赖:

yum install libdap libdapserver cfitsio hdf5 freexl netcdf armadillo xerces-c poppler spatialite CharLS

如果部分包找不到,确认Amazon Linux的核心仓库(amzn-mainamzn-updates)已启用:

yum repolist enabled | grep amzn

若未启用,编辑/etc/yum.repos.d/amzn-main.repoamzn-updates.repo,将enabled=0改为enabled=1即可。

3. 从源码编译PostGIS

如果仓库中的预编译包始终存在依赖兼容问题,从源码编译是最稳妥的解决方案:

  1. 先安装编译所需的基础依赖:
    yum install postgresql96-devel gcc make proj-devel geos-devel libxml2-devel
    
  2. 下载PostGIS 2.4.4源码并解压:
    wget https://download.osgeo.org/postgis/source/postgis-2.4.4.tar.gz
    tar -xzf postgis-2.4.4.tar.gz
    cd postgis-2.4.4
    
  3. 配置编译参数并完成编译安装:
    ./configure --with-pgconfig=/usr/pgsql-9.6/bin/pg_config
    make && make install
    

4. 是否需要更换发行版?

如果上述方法都无法解决问题,换Ubuntu确实能大幅减少依赖适配的麻烦——Ubuntu官方仓库中PostgreSQL和PostGIS的版本匹配度更高,安装流程更顺畅。但如果不想迁移系统,源码编译的方法基本能解决所有依赖不兼容的问题,我当时就是靠这个方案搞定的。

内容的提问来源于stack exchange,提问作者sergpank

火山引擎 最新活动