繁体   English   中英

AWS Codebuild 安装 Package 的升级版本,但仍检测到/使用旧版本

[英]AWS Codebuild Installing Upgraded Version of Package but Old Version Still Detected/Used

我有一个 Django 应用程序通过 AWS 的弹性 beanstalk 部署,它使用 CodePipeline 服务来构建。 作为该管道的一部分,CodeBuild 服务用于构建部署到 ElasticBeanstalk 环境的应用程序。

构建失败,发送以下错误消息:

django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).

根据亚马逊自己的 package 版本列表,我意识到这是预期的,因为旧版本打算在亚马逊 Linux 2 发行版上发布。

行。 我写了一个 shell 脚本来下载最新版本的 SQLite 并从头开始构建,但我仍然遇到同样的问题。

buildspec.yaml文件中,我有以下内容:

...    
  post_build:
    commands:
      - echo "beginning post-build phase..."
      - bash get_sqlite.sh
      - echo "sqlite version -- $(sqlite3 --version)"
      - python manage.py makemigrations
      ...

在 CodeBuild 日志中,我可以看到echo命令的结果如下:

sqlite version -- 3.40.1 2022-12-28

然而,构建失败并且日志仍然显示以下错误:

django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).

知道要检测更新版本而不是前一个版本需要采取哪些进一步的步骤吗?

我认为您需要将 sqlite 命令移动到 linux 中的 bin 目录。

- mv sqlite /usr/local/bin/

即使 package 已更新,但 linux 读取 PATH(用于查找命令的 env 变量),它仍然在查找命令的旧版本,也就是说,您需要用 bin 目录中的新版本替换旧的 sqlite 命令

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM