在AWS CodeBuild的Amazon Linux 2镜像中无法使用amazon-linux-extras怎么办
问题原因
你使用的CodeBuild Amazon Linux 2标准镜像默认配置了pyenv环境,Python执行路径优先级高于系统默认路径。而amazon-linux-extras是基于系统预装Python开发的工具,调用时会优先匹配pyenv中的Python环境,找不到对应依赖模块就会抛出你遇到的报错。即使指定绝对路径执行,工具内部依然会调用默认的Python解释器,所以无法解决问题。
解决方案
方法1:执行命令时临时指定系统Python路径
修改buildspec install阶段的命令为:install: commands: - PATH=/usr/bin:$PATH amazon-linux-extras install postgresql13该方法会临时把系统默认二进制路径调整到最高优先级,让
amazon-linux-extras调用系统自带的Python解释器运行,不会影响后续构建步骤的环境变量配置。方法2:临时关闭pyenv环境
如果你后续构建步骤不需要使用pyenv预置的Python版本,可以直接先关闭pyenv再执行安装:install: commands: - pyenv deactivate - amazon-linux-extras install postgresql13方法3:绕过amazon-linux-extras安装
也可以直接添加PostgreSQL官方YUM源安装对应版本,完全避开路径冲突问题,适合需要固定PostgreSQL小版本的场景。
安装完成后可以在build阶段添加psql --version命令验证安装是否成功。
内容的提问来源于stack exchange,提问作者zessx
相关产品推荐
相关产品推荐

