You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS Elastic Beanstalk部署GeoDjango遇依赖缺失问题求助

解决AWS Elastic Beanstalk部署GeoDjango时libpoppler.so.5依赖缺失问题

我之前部署GeoDjango到EB的时候也踩过这个一模一样的坑,这个错误本质是你用的Amazon Linux 2017.09自带的poppler库版本比gdal-java-1.9.2-8.rhel6要求的libpoppler.so.5要新,导致依赖不匹配。下面是我亲测有效的解决方案,通过ebextensions配置来安装兼容的依赖包:

步骤1:创建/更新ebextensions配置文件

在你的项目根目录下创建(或修改).ebextensions/geodjango_dependencies.config文件,内容如下:

# 清理yum缓存,确保能获取到最新的包源信息
commands:
  00_clean_yum_cache:
    command: yum clean all && yum makecache fast
    ignoreErrors: true

# 安装必要的yum源和依赖包
packages:
  yum:
    epel-release: []
    # 指定安装提供libpoppler.so.5的旧版poppler包,匹配gdal-java的依赖要求
    poppler: 0.12.4-3.el6
    poppler-devel: 0.12.4-3.el6
    # 安装GeoDjango核心依赖
    gdal: []
    gdal-devel: []
    gdal-java: []
    postgis: []

# 修复libpoppler的软链接,避免系统无法识别带特殊格式的依赖命名
commands:
  01_fix_poppler_link:
    command: ln -sf /usr/lib64/libpoppler.so.5 /usr/lib64/libpoppler.so.5()(64bit)
    ignoreErrors: true

步骤2:关键细节说明

  • 指定poppler版本:特意选0.12.4-3.el6是因为它正好提供libpoppler.so.5,完美匹配你报错里gdal-java-1.9.2的依赖要求。
  • EPEL源的作用:GeoDjango需要的GDAL、PostGIS等地理相关包大多在EPEL源里,所以必须先安装epel-release才能获取到这些包。
  • 软链接修复:有时候yum安装后,系统无法识别带括号的依赖命名格式,手动创建软链接可以直接绕过这个识别问题。

步骤3:重新部署

确保.ebextensions文件夹直接放在项目根目录(不能嵌套在子文件夹里),然后执行EB部署命令eb deploy即可。

如果还是遇到问题,可以尝试在配置里补充安装postgresql93-devel这类和你的pgdg93源匹配的包,或者检查GDAL版本是否完全适配RHEL6系的Amazon Linux 2017.09环境。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:22:56