2013-04-11 17 views
6

Poiché utilizzo Express.js, non posso più usare normalmente npm install. Ho sempre andare root per farlo funzionare ...NPM mi chiede sempre per root in un progetto Express

Diciamo che ho generare un projet con

express --sessions --css css 

Quando provo a fare un npm install dopo, ho questi errori

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 

Ma se fai un sudo npm install, va tutto bene ... Qualche idea del perché?

+0

Il file '/ Users/Arnaud/.npm/e7d16cae-express-3-1-1.lock' probabilmente appartiene a root (forse un residuo una volta in esecuzione 'npm' come root). Penso che puoi semplicemente rimuoverlo e riprovare. Altrimenti, controlla le autorizzazioni di '/ Users/Arnaud/.npm /' per assicurarti che sia scrivibile per te. – robertklep

risposta

11

Questo è probabilmente un problema di autorizzazioni. Per recuperare la proprietà della directory /Users/Arnaud/.npm eseguire il seguente comando nel terminale

chown -R Arnaud /Users/Arnaud/.npm 

Se siete su OSX è anche possibile utilizzare Utility Disco per riparare i permessi attraverso l'intero disco, che sarà probabilmente risolvere il problema per voi pure .

+0

Sì, lo ha fatto. La cosa strana è che ho provato a riparare i permessi con l'Utility Disco e non ha risolto nulla ... Comunque, ora funziona. Grazie :) – Axiol

+4

Ho dovuto fare sudo chown -R username /Users/username/.npm – ajh158

+0

Qualcuno conosce il comando per questo su ubuntu? ogni volta che provo a 'npm install -g anyThing' devo eseguirlo di nuovo con' sudo' di fronte –

0

Se si sta utilizzando un sistema operativo MAC o di una macchina Unix/Lunix, hai solo bisogno di essere consapevoli del fatto che per una misura di sicurezza, anche se il vostro a root proprietario è necessario utilizzare il comando sudo sulla riga di comando nel terminale . Quindi cambiare la proprietà di file e directory non è sufficiente con il comando chown per la maggior parte del tempo.

Il motivo è che il comando che eseguirai avrà grandi cambiamenti sui file di sistema e devi inserire la password del tuo amministratore root, proprio come in Windows quando ti chiedono di inserire la password dell'amministratore per le modifiche al sistema, quindi essa sarà simile a questa:

* Ms-MacBook-Pro: ~ $ AMB sudo npm install -g esprimere-generatore

password: (immettere la password per root/amministratore)

/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 *

Problemi correlati