首页 > 解决方案 > /lib64/libc.so.6:未找到版本“GLIBC_2.32”

问题描述

我正在使用基本示例在 Ubuntu 上构建 lambda。它的构建没有任何错误,但是如果我在崩溃时在 aws 上上传和测试它:

{
  "errorMessage": "RequestId: 7f4d0aca-125c-4032-98dd-9ff387e5252b Error: Runtime exited with error: exit status 1",
  "errorType": "Runtime.ExitError"
}

日志输出为:

START
RequestId: 7f4d0aca-125c-4032-98dd-9ff387e5252b
Version: $LATEST.~.jwtauthorizeraws.jwtauthorizerawsapplication: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by ./~.jwtauthorizerawsapplication)
END 
RequestId: 7f4d0aca-125c-4032-98dd-9ff387e5252b
REPORT
RequestId: 7f4d0aca-125c-4032-98dd-9ff387e5252b
Duration: 56.02 ms
Billed Duration: 57 ms
Memory Size: 128 MB
Max Memory Used: 7 MB   
RequestId: 7f4d0aca-125c-4032-98dd-9ff387e5252b
Error: Runtime exited with error: exit status 1
Runtime.ExitError

标签: aws-lambdagraalvm-native-imagespring-cloud-function

解决方案


这可能意味着用于构建可执行文件的 glibc 版本与 docker 环境使用的不同。

因此,检查构建环境“ldd --version”将显示 glibc 版本。

现在,在您的 docker 容器(docker run -ti --entrypoint=/bin/bash dockerimage:tag)中输入相同的 ldd 命令。您可能会看到版本不同。因此,更新构建环境以使用与 docker 环境相同的版本,反之亦然。

避免这种情况的最佳方法是使用运行时环境来构建您的本机可执行文件:这样 glibc 版本将始终匹配。


推荐阅读