Ubuntu下执行sudo npm i -g meta报错,寻求解决方案
解决sudo npm i -g meta的权限错误问题
问题根源
错误提示里的Permission denied是因为**/root/.npm目录的权限不属于root用户**——大概率是你之前不用sudo执行过npm命令,导致这个目录被普通用户账户接管,现在用sudo运行npm时,反而没有权限写入自己的root目录。
快速修复步骤
- 先检查目录权限:
ls -ld /root/.npm
如果输出里的所有者不是root root,就说明权限确实有问题。
- 修复目录权限:
sudo chown -R root:root /root/.npm
这条命令会把/root/.npm及子目录的所有者强制改回root。
- 重新执行安装:
sudo npm i -g meta
长期优化方案(避免sudo安装npm包)
频繁用sudo装全局包容易踩权限坑,推荐把npm全局安装目录配置到自己的用户目录下:
- 创建专属全局目录:
mkdir -p ~/.npm-global
- 让npm默认用这个目录:
npm config set prefix '~/.npm-global'
- 把目录加入系统环境变量(编辑bash配置文件):
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
- 立即生效配置:
source ~/.bashrc
之后直接执行npm i -g meta就行,再也不用加sudo,也不会碰权限问题。
内容的提问来源于stack exchange,提问作者Ricardo Ferreira
相关产品推荐
相关产品推荐

