Ubuntu系统安装React Native时执行npm install -g expo-cli遇权限错误
解决Ubuntu下npm安装expo-cli的权限错误问题
这问题我之前在Ubuntu上装全局npm包时也碰到过,本质是全局npm目录的权限问题——默认情况下/usr/lib/node_modules属于root用户,普通用户没有写入权限,直接用-g参数安装全局包就会触发EACCES错误。给你几个靠谱的解决办法,按推荐程度排序:
方法1:修改npm全局安装目录到用户私有目录(最推荐)
这个方法完全避开系统目录的权限问题,是最安全且长期有效的方案:
- 创建用户专属的全局npm目录:
mkdir -p ~/.npm-global - 配置npm使用这个新目录作为全局包的安装路径:
npm config set prefix '~/.npm-global' - 将新目录添加到系统PATH中,编辑
~/.profile(如果用bash)或~/.zshrc(如果用zsh)文件,添加以下内容:export PATH=~/.npm-global/bin:$PATH - 刷新环境变量配置,让修改立即生效:
source ~/.profile - 现在重新安装expo-cli就不会有权限问题了:
npm install -g expo-cli
方法2:临时使用sudo安装(不推荐)
如果你只是临时需要快速安装,可以用sudo提升权限,但这个方法可能导致后续全局包的文件所有权混乱,不建议长期使用:
sudo npm install -g expo-cli
方法3:修改系统目录的所有权
把/usr/lib/node_modules目录的所有权改成当前用户,这样普通用户就能直接写入:
sudo chown -R $USER:$USER /usr/lib/node_modules
注意:这个方法会影响系统中其他用户使用npm全局包的权限,如果你是单用户机器可以考虑,但多人共享的机器不建议这么做。
额外提示
如果之前的安装失败留下了缓存文件,建议先清理npm缓存再重新安装:
npm cache clean --force
内容的提问来源于stack exchange,提问作者Atharva Sawant
相关产品推荐
相关产品推荐

