2013-04-11 8 views
6

Da ich Express.js verwende, kann ich npm install normalerweise nicht mehr verwenden. Ich muss immer Wurzel gehen, damit es funktioniert ...NPM frage mich immer nach root in einem Express-Projekt

Lassen Sie uns sagen, dass ich ein projet mit

express --sessions --css css 

erzeugen Wenn ich versuche, eine npm install nach zu tun, ich habe diese Fehler bekam

npm WARN package.json [email protected] No README.md file found! 
npm ERR! Error: EACCES, open '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' 
npm ERR! { [Error: EACCES, open '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 12.3.0 
npm ERR! command "node" "/usr/local/bin/npm" "install" 
npm ERR! cwd /Users/Arnaud/Sites/test 
npm ERR! node -v v0.10.2 
npm ERR! npm -v 1.2.15 
npm ERR! path /Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock 
npm ERR! code EACCES 
npm ERR! errno 3 
npm ERR! stack Error: EACCES, open '/Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /Users/Arnaud/Sites/test/npm-debug.log 
npm ERR! not ok code 0 

Aber wenn eine sudo npm install tun, ist alles gut ... Irgendeine Idee warum?

+0

Die Datei '/ Users/Arnaud/NPM/e7d16cae-express-3-1-1.lock' gehört wohl (vielleicht ein Überbleibsel zu verankern von einmal laufen 'npm' als root). Ich denke, du kannst es einfach entfernen und es erneut versuchen. Überprüfen Sie andernfalls die Berechtigungen von '/ Users/Arnaud/.npm /', um sicherzustellen, dass sie für Sie schreibbar sind. – robertklep

Antwort

11

Dies ist wahrscheinlich ein Problem mit Berechtigungen. Zurückzufordern Besitz des /Users/Arnaud/.npm Verzeichnis den folgenden Befehl im Terminal ausführen

chown -R Arnaud /Users/Arnaud/.npm 

Wenn Sie auf OSX sind, können Sie auch Festplatten-Dienstprogramm verwenden, um Berechtigungen für die gesamte Festplatte zu reparieren, was wahrscheinlich das Problem für Sie als auch behebt .

+0

Yup, tat es. Merkwürdige Sache ist, dass ich versucht habe, Berechtigungen mit dem Festplatten-Dienstprogramm zu reparieren, und es hat nichts gelöst ... Jedenfalls funktioniert es jetzt. Danke :) – Axiol

+4

Ich musste sudo chown -R Benutzername /Users/username/.npm – ajh158

+0

Wer kennt den Befehl dafür auf Ubuntu? immer wenn ich versuche, 'npm install -g anyThing' zu installieren, muss ich es mit 'sudo' vor starten –

0

Wenn Ihr mit einem Mac OS oder Unix/Lunix Maschine, Sie müssen nur bewusst sein, dass für eine Sicherheitsmaßnahme, auch wenn Ihr Eigentümer zu verankern Sie die sudo Befehl auf der Kommandozeile im Terminal verwenden müssen . Das Ändern des Besitzes von Dateien und Verzeichnissen ist mit chown-Befehl die meiste Zeit nicht genug.

Der Grund ist, dass der Befehl, den Sie ausführen werden große Änderungen an Systemdateien haben und Sie müssen das Passwort Ihres root admin eingeben, wie in Windows, wenn sie Sie bitten, das Administratorkennwort für Systemänderungen einzugeben es wird wie folgt aussehen:

* Ms-MacBook-Pro: ~ AMB $ sudo npm installieren -g Express-Generator

Passwort: (Geben sie Ihr Passwort für den Root/ADMINISTRATOR)

/usr/local/bin/express -> /usr/local/lib/node_modules/express-generator/bin/express-cli.js 
/usr/local/lib 
└─┬ [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    └── [email protected] 

Ms-MacBook-Pro: ~ AMB $ *