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

使用sam build构建SAM项目时遇mkdir依赖libselinux版本缺失错误求助

解决SAM构建时mkdir: /usr/local/aws-sam-cli/1.76.0/dist/libselinux.so.1: no version information available错误

问题原因

这个错误是AWS SAM CLI自带的libselinux.so.1库版本与Ubuntu系统原生mkdir命令不兼容导致的。SAM构建时会将自身的库目录注入到LD_LIBRARY_PATH环境变量中,使得系统命令优先调用SAM的旧版本库,引发版本不匹配问题。

解决方案

方案1:在Makefile中直接使用系统原生mkdir的绝对路径

修改Makefile里的build-RuntimeDependenciesLayer目标,把mkdir替换为系统绝对路径/bin/mkdir,绕过SAM注入的环境影响:

build-RuntimeDependenciesLayer:
    /bin/mkdir -p "$(ARTIFACTS_DIR)/nodejs"
    cp package.json package-lock.json "$(ARTIFACTS_DIR)/nodejs/"
    npm install --production --prefix "$(ARTIFACTS_DIR)/nodejs/"
    rm "$(ARTIFACTS_DIR)/nodejs/package.json" # to avoid rebuilding when changes doesn't relate to dependencies

方案2:在GitHub Actions中重置LD_LIBRARY_PATH环境变量

在执行sam build前,强制将系统标准库路径放到环境变量最前面,覆盖SAM注入的路径:

调整GitHub Actions的Build function步骤:

- name: Build function
  run: |
    export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
    sam build

方案3:升级AWS SAM CLI版本

旧版本SAM CLI(如你使用的1.76.0)可能存在此类兼容性问题,尝试升级到最新稳定版:

在GitHub Actions中添加SAM升级步骤:

- name: Upgrade AWS SAM CLI
  run: |
    pip install --upgrade aws-sam-cli

验证

修改后重新触发GitHub Actions流水线,检查sam build步骤是否能正常完成,不再出现libselinux版本错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:54:55