You need to enable JavaScript to run this app. Linux下sudo npm全局安装Yarn无报错失败 缺少get-uid-gid.js如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Linux下sudo npm全局安装Yarn无报错失败 缺少get-uid-gid.js如何解决

故障根本原因

你遇到的安装失败核心是Ubuntu apt源内置的npm 6.14.4版本存在内置依赖文件损坏丢失:

  • 报错日志里的Cannot find module './get-uid-gid.js',是npm运行全局安装流程时,调用内置的权限计算模块触发的缺失错误
  • Yarn 1.22.10的preinstall脚本默认把错误输出重定向到/dev/null,所以终端的verbose日志里不会直接弹出这个模块缺失提示,只会静默返回非0退出码
  • 你之前在普通用户家目录找不到对应安装日志,是因为带sudo执行npm时,npm的日志输出会自动写入当前执行用户(root)的家目录路径,也就是/root/.npm/_logs,和普通用户的日志目录相互独立。
可落地修复步骤
  • 第一,先清理残留的损坏文件和缓存
    先删除之前残留的损坏Yarn全局目录、强制清空npm缓存,避免旧文件干扰后续安装:
    sudo rm -rf /usr/local/lib/node_modules/yarn
    sudo npm cache clean --force
    
  • 第二,修复npm缺失的内置模块
    因为当前npm是通过apt包管理器安装的,模块文件属于系统包的一部分,直接重装对应npm包即可补回缺失的文件:
    sudo apt install --reinstall npm
    
    安装完成后可以先校验模块是否恢复:执行node -e "require('/usr/lib/node_modules/npm/node_modules/get-uid-gid')",没有抛出模块缺失报错,就说明内置模块修复完成。
  • 第三,重新执行Yarn全局安装
    模块修复完成后,直接运行安装命令即可正常完成流程:
    sudo npm install --global yarn
    
  • 安装完成后执行yarn --version,能正常输出版本号,就代表安装生效,可正常使用。
长期优化建议

Ubuntu 20.04 apt源默认带的Node.js 10.x、npm 6.x版本已经停止维护,后续全局安装各类包时还可能遇到同类内置模块路径不匹配、文件丢失的问题,后续可以将Node.js升级到仍在维护的长期支持版本,减少这类兼容性故障。

内容的提问来源于stack exchange,提问作者Ecko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 20:45:04