错误的ERR!错误:EPERM,chmod

时间:2014-12-28 15:29:16

标签: node.js npm

在尝试在USB设备上构建node.js应用程序时,如果在我的覆盆子pi上使用npm时遇到一些问题。

package.json看起来像这样:

{
  "name" : "node-todo",
  "version" : "1.0.0",
  "description" : "TodoApp",
  "main" : "server.js",
  "autho" : "Stephan",
  "dependencies" : {
     "express" : "*"
  }
}

使用npm install结果:

npm WARN package.json node-todo@1.0.0 No repository field.
npm WARN package.json node-todo@1.0.0 No README data
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm ERR! Error: EPERM, chmod '/media/ServerHD/testraum/test/node_modules/express/package.json'
npm ERR!  { [Error: EPERM, chmod '/media/ServerHD/testraum/test/node_modules/express/package.json']
npm ERR!   errno: 50,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/media/ServerHD/testraum/test/node_modules/express/package.json',
npm ERR!   fstream_finish_call: 'chmod',
npm ERR!   fstream_type: 'File',
npm ERR!   fstream_path: '/media/ServerHD/testraum/test/node_modules/express/package.json',
npm ERR!   fstream_class: 'FileWriter',
npm ERR!   fstream_stack:
npm ERR!    [ '/opt/node/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19',
npm ERR!      'Object.oncomplete (fs.js:107:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.12.28+
npm ERR! command "/opt/node/bin/node" "/opt/node/bin/npm" "install" "-no-bin-links"
npm ERR! cwd /media/ServerHD/testraum/test
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.9
npm ERR! path /media/ServerHD/testraum/test/node_modules/express/package.json
npm ERR! fstream_path /media/ServerHD/testraum/test/node_modules/express/package.json
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chmod
npm ERR! code EPERM
npm ERR! errno 50
npm ERR! stack Error: EPERM, chmod '/media/ServerHD/testraum/test/node_modules/express/package.json'
npm ERR! fstream_stack /opt/node/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /media/ServerHD/testraum/test/npm-debug.log
npm ERR! not ok code 0

如果我尝试在/ home / myUser / Appfolder中运行npm install,一切正常。 ServerHD上的所有文件都由homefolder所属的同一用户创建。 我尝试使用:

  1. npm install -no-bin-links导致相同的问题
  2. 尝试将ServerHD上的文件夹更改为777对npm
  3. 没有影响
  4. 尝试使用sudo运行npm install
  5. 使用快速生成器会导致类似的问题。

    希望有人可以提供帮助。谢谢到目前为止。

2 个答案:

答案 0 :(得分:6)

我有类似的错误并致电:

npm cache clean

帮我解决了。

答案 1 :(得分:2)

npm告诉您缺少修改受影响文件权限的权限。这可能是竞争条件,其中一些已在npm@1.4代码库中修复。我猜你在一个磁盘而不是另一个磁盘上看到它的原因是磁盘具有不同的延迟和读取访问时间,导致不可重现的行为。

您应该升级到当前版本的npm(和节点,就此而言)。如果您使用的是基于Debian的发行版,则可以按照此处的说明进行操作。 https://github.com/nodesource/distributions#usage-instructions>

curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs nodejs-legacy sudo npm -g install npm@latest

如果这不能解决您的问题,请告诉我们;为了更快地回复,请在npm跟踪器https://github.com/npm/npm/issues上创建问题并在问题中为我(@ smikes)添加标签。