我正在尝试在一个新的Ubuntu 12.04实例上设置我的node环境,并已经安装了Node 0.8.14,但当我尝试运行npm install
时遇到了问题。
因此,当我尝试运行npm install
时,它说我需要以root或管理员身份运行:
Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:297:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
但是当尝试以sudo运行它时,它会显示以下内容:
npm WARN cannot run in wd PackNodeDev@0.0.1-166 npm install -g coffee-script node-gyp (wd=/home/ubuntu/PackNode)
我在 package.json 文件中,包含了以下的脚本:
"scripts": {
"preinstall": "npm install -g coffee-script node-gyp",
"start": "node server.js",
"test": "mocha --require should --compilers coffee:coffee-script --colors"
},
因为我在自己的电脑(Mac)上已经成功安装了其余的开发依赖项,所以它们都是有效的。有人知道这是为什么吗?
sudo npm install --unsafe-perm
对我有效,但sudo npm install
不行,尽管我在 package.json 中添加了"unsafe-perm":true
... 不太清楚原因。 - Dmitry Pashkevichnpm install --unsafe-perm
对我来说有效,但我尝试遵循更改默认user
配置的暗示。所以我执行了npm set user my_user
和npm set group my_group
,这将在 root 用户的.npmrc
文件中添加相应的条目。但问题是node_modules
文件夹本身及其子文件夹仍然由 root 拥有,因此这并没有帮助解决问题。我无法找到任何方法使它们不再由 root 拥有。 - fulv--unsafe-perm
也适用于npm publish
。这在从 CI 发布包时非常有用,因为容器中的构建通常以 root 用户身份运行。 - Lukas Knuth