如何修复“/lib64/libm.so.6:找不到版本‘GLIBC_2.29’”

问题描述 投票:0回答:2

我正在尝试在利用 Node.js 14.x 运行时的 lambda 函数中使用 gifsicle。执行该函数会抛出以下错误:

ERROR /opt/gifsicle: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/gifsicle)

在做了一些尽职调查之后,我相信我需要向我的 lambda 添加一个层,其中包含错误中指出的目录和所需的依赖项 - 但我完全不知道如何去做。

有什么建议吗?

amazon-web-services aws-lambda glibc libc
2个回答
0
投票

可在此处获取说明。有关如何创建图层内容的信息相当匮乏。您需要执行以下操作:

  • 使用 Amazon Linux 2 生成 EC2 实例
  • 将 gifsicle 安装到其中。您可能需要从源代码构建它。
  • 创建一个 zip 文件。 gifsicle 应转到 bin 文件夹,所有所需的库应转到 lib 文件夹。

此 zip 文件应该准备好作为 Lambda 层上传。


0
投票

在 Node.js 18 运行时的 AWS Lambda 函数中使用

better-sqlite3
时,我遇到了类似的问题。将 Lambda 运行时升级到 Node.js 22 解决了该问题,可能是由于 Node.js 22 中更新了底层操作系统。我还将 Lambda 层更新到版本 22,但之前版本 18 层也能正常工作。

根据 AWS 文档,Node.js 22 运行时基于 Amazon Linux 2023,我认为它包含更新的系统库,可以提高与

better-sqlite3
等本机模块的兼容性。

升级到 Node.js 22 可以为原生模块提供更兼容的环境,有可能解决与系统库版本相关的问题。

https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.