Elastic Beanstalk部署Django时Yum找不到指定包的解决求助
解决AWS Elastic Beanstalk部署Django时Yum包安装失败问题
问题根源
你遇到的postgresql93-devel、amazon-linux-extras安装失败,核心原因是:
- 你的Elastic Beanstalk环境使用的操作系统(Amazon Linux 2或2023)中,这些包不在默认Yum/DNF源里,或者包名、工具已被替换
- 配置文件中重复定义了包安装逻辑,造成冗余冲突
分环境解决方案
1. 环境为Amazon Linux 2
Amazon Linux 2中postgresql93已从默认源移除,需通过amazon-linux-extras启用对应版本的PostgreSQL仓库,同时避免重复安装:
修改.ebextensions/01_packages.config为:
packages: yum: git: [] postgresql-devel: [] python39-devel: [] commands: 01_enable_postgresql_repo: command: amazon-linux-extras enable postgresql12 ignoreErrors: false 02_refresh_yum_metadata: command: yum clean metadata && yum makecache
注:PostgreSQL 9.3已停止维护,强烈建议使用12+版本;若必须用9.3,需手动添加第三方仓库(存在安全风险,不推荐)
2. 环境为Amazon Linux 2023
Amazon Linux 2023用dnf替代yum,且移除了amazon-linux-extras,PostgreSQL包在默认源中可用:
修改.ebextensions/01_packages.config为:
packages: dnf: git: [] postgresql-devel: [] python3-devel: []
注:Amazon Linux 2023默认Python版本为3.11,若需指定3.9版本,需调整包名为
python3.9-devel
可选:强制安装PostgreSQL 9.3(不推荐)
若因业务限制必须使用9.3,可手动添加第三方仓库(仅适用于Amazon Linux 2):
files: /etc/yum.repos.d/pgdg-93-amazonlinux.repo: content: | [pgdg93] name=PostgreSQL 9.3 for Amazon Linux baseurl=https://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-7-x86_64/ enabled=1 gpgcheck=1 gpgkey=https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-93 packages: yum: git: [] postgresql93-devel: [] python39-devel: []
操作步骤
- 确认你的Elastic Beanstalk环境OS版本(可通过AWS控制台或
eb status命令查看) - 替换对应的
.ebextensions/01_packages.config内容 - 重新执行
eb deploy部署应用
内容的提问来源于stack exchange,提问作者Ghazi
相关产品推荐
相关产品推荐

