2014-12-28 39 views
6

Wenn einige Probleme mit npm auf meinem Raspberry Pi beim Versuch, eine node.js-Anwendung auf einem USB-Gerät zu bauen.npm ERR! Fehler: EPERM, chmod

package.json sieht wie folgt aus:

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

Mit npm Ergebnisse installieren in:

npm WARN package.json [email protected] No repository field. 
npm WARN package.json [email protected] 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 

Wenn ich versuche, npm installieren in/home/myUser/appfolder funktioniert alles einwandfrei zu laufen. Alle Dateien auf dem ServerHD werden von demselben Benutzer erstellt, zu dem der Homefolder gehört. Ich habe versucht, mit:

  1. npm -NO-bin-Links installieren, die
  2. in den gleichen Problemen führt versuchen, den Ordner auf ServerHD bis 777 hat keine Auswirkungen für npm
  3. versuchen, ändern npm installieren laufen mit sudo

Die Verwendung von Express-Generator verursacht ähnliche Probleme.

Hoffe, dass jemand helfen kann. Danke bis jetzt.

+0

Welcher Partitionstyp ist in ServerHD? NTFS/FAT32? – Salem

+0

Es ist eine Fat32-Partition, die auch über Samba verwendet wird. – Stephan

Antwort

2

npm teilt Ihnen mit, dass Ihnen die Berechtigungen zum Ändern der Berechtigungen für die betroffene Datei fehlen. Dies ist wahrscheinlich eine Race-Bedingung, von denen mehrere in der Codebasis [email protected] behoben wurden. Ich nehme an, dass der Grund, warum Sie es auf einer Festplatte und nicht auf der anderen sehen, dass die Festplatten unterschiedliche Latenz und Lesezugriffszeiten haben, was zu nicht reproduzierbarem Verhalten führt.

Sie sollten auf die aktuelle Version von npm (und Knoten, für diese Angelegenheit) aktualisieren. Wenn Sie eine Debian-basierte Distribution verwenden, können Sie den Anweisungen folgen hier < 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 [email protected]

Wenn das nicht beheben Ihr Problem, lass es mich wissen; für eine schnellere Antwort, erstellen Sie ein Problem auf dem npm Tracker https://github.com/npm/npm/issues und tag mich (@smikes) in dem Problem.

+0

Ich benutze node/npm auf einem Arm Gerät, so denke ich, dass die Version, die ich verwende, das neueste für diese Architektur ist. – Stephan

+0

Nodesource bietet eine "Armhf" -Version - ARMv7 und höher .. so denke ich, dass Sie es nicht auf einem Raspberry Pi verwenden können. Dann aktualisieren Sie bitte einfach Ihre 'npm', da ich nicht genug über unterschiedliche Architekturversionen der' node' Binärdatei weiß. (npm ist js-only) –

6

hatte ich ähnliche Fehler und Berufung:

npm Cache sauber

mich lösen half.

0

Kopieren Sie gruntfile und package.json auf den lokalen Computer. Installieren Sie npm hier. Verschieben Sie das Ergebnis node_modules auf das USB-Gerät. Funktioniert bei mir. Der einfachste Weg, denke ich.

+0

Dies ist gefährlich, da einige Node-Module für dieses spezifische Betriebssystem gebaut werden - wenn Sie zwischen O/S's gehen, wird es wahrscheinlich irgendwann Probleme geben. –

Verwandte Themen