首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >gyp WARN EACCES用户"root“无权访问dev目录

gyp WARN EACCES用户"root“无权访问dev目录
EN

Stack Overflow用户
提问于 2015-04-06 17:17:11
回答 3查看 35.4K关注 0票数 51

试着

sudo npm install protractor -g

和同样的臭名昭著的错误/警告再次(谷歌搜索无用):

gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/dmitrizaitsev/.node-gyp/0.12.0"

似乎发生的情况是,尽管node version 0.12.0是我机器上的当前节点版本,但在相同的安装过程中,它会一次又一次地被下载和重新构建:

node -v
v0.12.0

问题:

  • 目录"/Users/dmitrizaitsev/.node-gyp/0.12.0“实际上丢失了!为什么会出现这样一条误导性消息?
  • 为什么在node v0.12.0和上次使用

成功重建期间都没有创建此目录?如何才能防止这种情况发生?

我运行的是Mac OSX 10.8.5,如果这很重要的话。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-22 12:00:16

更新。还有一种更好的方法-将npm的默认全局目录更改为您已经拥有正确权限的用户子目录,这样就不需要首先打乱系统文件的权限或所有权。

按照https://docs.npmjs.com/getting-started/fixing-npm-permissions中的建议

为全局installations:创建一个目录

mkdir ~/.npm-global

  1. 将npm配置为使用新的目录路径:

npm config set prefix '~/.npm-global'

  1. 打开或创建~/.profile (或~/.bash_profile等)文件并添加以下行(在文件末尾):

export PATH=~/.npm-global/bin:$PATH

  1. 在命令行上,更新系统变量:

source ~/.profile

source ~/.bash_profile

另请参阅Sindre Sorhus的主题指南:https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md

现在已经找出了问题所在:

该目录有错误的权限-它不是可写的(这将是一个比“可访问”更好的错误消息)。

因为它是不可写的,所以每次使用后都会使用和删除一个临时目录,这就是为什么整个下载必须一次又一次地运行。

解决方案是使用以下命令设置用户权限

sudo chown -R $USER <directory>

再也不要sudo npm了。似乎每当你运行sudo npm时,创建的所有子目录都会获得错误的权限,这将导致以后的问题。

See here for more details

票数 83
EN

Stack Overflow用户

发布于 2015-04-22 06:10:59

尝试使用:

sudo npm安装不安全模块 -g -perm

票数 27
EN

Stack Overflow用户

发布于 2015-10-17 00:10:24

这是因为您在目录"/Users/dmitrizaitsev/.node-gyp/0.12.0“中没有文件夹。

只需创建一个名为0.12.0 的新文件夹,这是您的节点的版本号

它会解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29468404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档