在 debian jessie 上安装 yeoman 时出错

error installing yeoman on debian jessie

我正在使用全新安装的 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 以 no user/group 运行。我在 ubuntu 上从未遇到过这个问题,但无论出于何种原因,我现在在 Jessie 上遇到了这个问题。我不知道应该从哪里开始尝试解决这个问题。

事实证明,我的问题是以 root 身份登录的。

我做了以下步骤:

  1. apt-get autoremove nodejs
  2. adduser dev 在提示中填写用户详细信息
  3. visudo 并取消注释允许 sudo 组以 root 身份执行命令的行。
  4. usermod -aG sudo dev 将用户添加到 sudo 组
  5. su - dev 切换到开发用户
  6. sudo apt install nodejs
  7. sudo npm install -g npm 更新 npm
  8. sudo npm install -g yo重新安装哟
  9. 安装你的发电机

工作得很好,Yo 现在工作没有问题。