CentOS 7下用npm安装Appium遇EACCES权限错误求助
解决CentOS 7下npm全局安装Appium的EACCES权限错误
你遇到的问题很典型:即使以root用户执行npm install -g appium,还是在安装appium-chromedriver时出现了权限拒绝。这是因为npm在root身份下运行时,默认会自动降级到nobody用户执行包的安装脚本,导致创建目录时权限不足。下面给你几个可行的解决办法:
方案1:用--unsafe-perm参数强制以root权限运行脚本
这是最直接快速的解决方式,通过参数禁用npm的权限降级策略,让安装脚本以root身份执行:
npm install -g appium --unsafe-perm=true --allow-root
方案2:修复npm全局目录的权限(如果之前修改过权限配置)
如果你的npm全局目录权限被意外修改,也可能引发这个问题。先检查npm的全局前缀目录:
npm config get prefix
默认输出应为/usr。接着修复该目录下相关文件夹的权限:
chown -R root:root $(npm config get prefix)/{lib/node_modules,bin,share}
修复完成后重新执行原安装命令即可。
方案3:(推荐长期使用)为普通用户配置独立npm全局目录
如果不想一直用root操作npm,可以给普通用户设置专属的全局npm目录,从根源避免权限问题:
- 创建全局目录:
mkdir ~/.npm-global
- 配置npm使用该目录:
npm config set prefix '~/.npm-global'
- 将该目录添加到系统PATH(编辑
~/.bashrc文件):
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
- 让配置立即生效:
source ~/.bashrc
之后用普通用户执行npm install -g appium即可,无需root权限。
内容的提问来源于stack exchange,提问作者Prakash P
相关产品推荐
相关产品推荐

