在AWS服务器执行sudo npm i失败,遇GLIBC_2.28缺失等问题求助
问题解决指南
1. 无package.json文件
- 先确保Github仓库根目录存在
package.json:本地项目根目录执行npm init -y生成基础配置,补充项目依赖(比如npm install react react-dom --save)和构建脚本(比如在scripts字段添加"build": "react-scripts build"),再推送到Github。 - 服务器克隆仓库后,先执行
ls检查根目录是否有该文件,确认无误后再运行sudo npm i。
2. GLIBC_2.28版本缺失
这是当前系统GLIBC版本低于Node要求导致的,最稳妥的解决方式是用nvm安装兼容的Node版本:
- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 重启终端或执行
source ~/.bashrc让nvm生效。 - 安装不依赖GLIBC 2.28的Node版本(比如v16.x系列):
nvm install 16 nvm use 16 - 执行
node -v验证版本,之后再运行sudo npm i即可。
3. sudo: node: command not found
这是因为sudo的环境变量PATH未包含Node的安装路径,两种解决方式可选:
- 用Node的绝对路径执行命令:先运行
which node获取路径(比如/home/ubuntu/.nvm/versions/node/v16.20.2/bin/node),再执行:sudo /home/ubuntu/.nvm/versions/node/v16.20.2/bin/npm i - 切换到root用户执行:
注意:此方式生成的sudo su npm inode_modules权限为root,后续操作可能需要调整文件权限。
4. E: You have broken packages
修复系统损坏的包:
sudo apt update && sudo apt --fix-broken install
如果仍未解决,执行以下命令清理后重试:
sudo apt autoremove sudo apt clean sudo apt update && sudo apt --fix-broken install
内容的提问来源于stack exchange,提问作者Christian Adams
相关产品推荐
相关产品推荐

