如何卸载npm v18并回退旧版本?解决GLIBC版本缺失报错
解决方法:卸载npm v18并回退旧版本
你的问题核心是Node.js v18(npm v18对应Node.js v18)依赖的GLIBC版本高于系统现有版本,导致Node/npm完全无法运行,必须绕过npm命令,通过手动删除或系统工具处理:
分场景处理
场景1:用nvm管理Node版本
如果之前是通过nvm安装的Node/npm:
- 执行
nvm ls查看已安装的版本列表(nvm是shell脚本,不依赖Node运行) - 直接切换到旧版本:
nvm use <旧版本号>(例如nvm use 16) - 如果切换失败,手动删除v18的目录:
之后重新执行rm -rf ~/.nvm/versions/node/v18.*nvm use <旧版本>,并设置为默认版本:nvm alias default <旧版本>
场景2:全局直接安装(通过npm install -g npm@18)
由于npm/Node已无法运行,手动删除相关文件:
- 找到Node/npm的安装路径:
which node # 输出示例:/usr/local/bin/node which npm # 输出示例:/usr/local/bin/npm - 删除相关文件和目录:
sudo rm -f /usr/local/bin/node /usr/local/bin/npm /usr/local/bin/npx sudo rm -rf /usr/local/lib/node_modules/npm - 重新安装兼容旧版本:
下载与系统GLIBC版本匹配的Node.js旧版本(例如v16.x LTS),解压后将node和npm可执行文件复制到/usr/local/bin,或通过系统包管理器安装。
场景3:系统包管理器安装(apt/yum等)
用系统包管理器卸载当前版本,再安装兼容旧版本:
- Debian/Ubuntu:
sudo apt remove --purge nodejs npm # 添加Node.js v16源后安装 curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install nodejs - CentOS/RHEL:
sudo yum remove nodejs npm # 添加Node.js v16源后安装 curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - sudo yum install nodejs
关键提示
重新安装时务必选择与系统GLIBC版本兼容的Node版本:Node.js v18要求GLIBC 2.27+,如果系统GLIBC版本低于此,最高兼容版本为Node.js v16。
内容的提问来源于stack exchange,提问作者M.Koops
相关产品推荐
相关产品推荐

