我正在使用全新安装的Debian 8 Jessie。我安装了Nginx,Nodejs 4x,NPM和MongoDB。我试图用npm install -g yo
安装Yeoman。我按Enter键输出yo-complete到STDOUT。然后我跑了yo-complete
。接下来我安装了npm install -g generator-keystone
。当我尝试在项目中使用生成器yo keystone
时,我收到以下错误消息:
/usr/lib/node_modules/yo/node_modules/configstore/index.js:53
throw err;
^
Error: EACCES: permission denied, open '/root/.config/configstore/insight-yo.json'
You don't have access to this file.
at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.readFileSync (fs.js:397:15)
at Object.create.all.get (/usr/lib/node_modules/yo/node_modules/configstore/index.js:34:26)
at Object.Configstore (/usr/lib/node_modules/yo/node_modules/configstore/index.js:27:44)
at new Insight (/usr/lib/node_modules/yo/node_modules/insight/lib/index.js:37:34)
at Object.<anonymous> (/usr/lib/node_modules/yo/lib/cli.js:163:11)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
仅供参考,我以root身份登录,但我明白问题是npm运行时没有用户/组。我在ubuntu上从未遇到过这个问题,但无论出于什么原因,我现在都在Jessie上了。我不知道应该从哪里开始尝试解决这个问题。
答案 0 :(得分:2)
事实证明,我的问题是以root身份登录。
我做了以下步骤:
apt-get autoremove nodejs
adduser dev
在提示 visudo
并取消注释允许sudo组以root身份执行命令的行。usermod -aG sudo dev
将用户添加到sudo群组su - dev
切换到开发用户sudo apt install nodejs
sudo npm install -g npm
更新npm sudo npm install -g yo
重新安装你好工作就像一个魅力,哟现在没有问题。