部署Gatsby/React网站到Amazon Amplify遇GLIBC版本缺失错误求助
解决Amazon Amplify部署Gatsby时的GLIBC版本错误
问题详情
部署基于React构建的Gatsby网站到Amazon Amplify时,持续触发以下错误:
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
Amplify控制台完整日志:
2022-11-29T03:46:43.053Z [INFO]: Now using node v18.0.0 (npm v) 2022-11-29T03:46:43.080Z [INFO]: Installing default global packages from /root/.nvm/default-packages... 2022-11-29T03:46:43.080Z [INFO]: npm install -g --quiet yarn@1.22.0 2022-11-29T03:46:43.082Z [WARNING]: node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node) 2022-11-29T03:46:43.083Z [WARNING]: Failed installing default packages. Please check if your default-packages file or a package in it has problems! 2022-11-29T03:46:43.084Z [INFO]: # Executing command: yarn install 2022-11-29T03:46:43.115Z [WARNING]: node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node) 2022-11-29T03:46:43.115Z [ERROR]: !!! Build failed 2022-11-29T03:46:43.116Z [ERROR]: !!! Non-Zero Exit Code detected
相关配置:
package.json中的Node版本要求:"engines" : { "node" : ">=18.0.0" }- Amplify构建设置(
amplify.yml):version: 1 frontend: phases: preBuild: commands: - nvm install 18.12.1 - yarn install build: commands: - yarn run build artifacts: baseDirectory: public files: - '**/*' cache: paths: - node_modules/**/*
解决方案
1. 切换到Amazon Linux 2构建镜像
旧版Amazon Linux 1镜像自带的GLIBC版本低于Node.js 18+要求的2.27/2.28版本,必须切换到Amazon Linux 2镜像:
- 登录Amplify控制台,进入目标应用→构建设置→编辑
- 在页面底部找到构建镜像选项,选择Amazon Linux 2后保存设置
2. 修正Node版本的构建设置
在amplify.yml中明确指定使用安装后的Node版本,避免Amplify自动选用不兼容的v18.0.0:
version: 1 frontend: phases: preBuild: commands: - nvm install 18.12.1 - nvm use 18.12.1 # 新增此命令,确保使用指定版本 - yarn install build: commands: - yarn run build artifacts: baseDirectory: public files: - '**/*' cache: paths: - node_modules/**/*
3. 禁用默认全局包安装干扰
如果全局包安装步骤触发错误,可在preBuild阶段先清空默认包配置文件:
preBuild: commands: - rm -f /root/.nvm/default-packages # 清空默认包列表 - nvm install 18.12.1 - nvm use 18.12.1 - yarn install
4. 清空构建缓存后重新构建
旧缓存可能残留不兼容的依赖文件:
- 在Amplify控制台的构建历史中,找到最近的构建记录→操作→清空缓存并重新构建
内容的提问来源于stack exchange,提问作者Tomas Lucena
相关产品推荐
相关产品推荐

