npm ERR! 错误:EPERM,chmod

如果在尝试在USB设备上构buildnode.js应用程序时,在我的树莓派上使用npm时遇到了一些问题。

package.json看起来像这样:

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

使用npm安装会导致:

 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上的所有文件都由主文件夹所属的同一用户创build。 我试过使用:

  1. npm install -no-bin-links会导致相同的问题
  2. 试图将ServerHD上的文件夹更改为777对npm没有影响
  3. 试图用sudo运行npm install

使用快速生成器会导致相似的问题。

希望有人能帮忙。 非常感谢。

我有类似的错误,并呼吁:

npmcaching清理

帮我解决了。

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上创build一个问题,并在问题中标记我(@smikes)&#x3002;

将gruntfile和package.json拷贝到本地机器上。 做npm安装在这里。 将结果node_modules移动到USB设备。 为我工作。 最简单的方法,我想。