2016-07-12 24 views
11

Corro npm installa lodash ma genera Errore: EACCES: autorizzazione negata errore. So che si tratta di un problema di autorizzazione ma, per quanto ne so, l'autorizzazione di sudo non è richiesta per installare localmente il modulo nodo. Se lo eseguo con sudo, viene installato nella cartella ~/node_modules. drwxrwxr-x è il permesso di file della cartella esistente. Non riesco a capire cosa potrebbe essere andato storto.Errore: EACCES: autorizzazione negata

Di seguito è visualizzato il messaggio di errore.

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz 
npm ERR! Linux 3.13.0-88-generic 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash" 
npm ERR! node v4.3.1 
npm ERR! npm v2.14.12 
npm ERR! path /home/rupesh/node_modules/lodash 
npm ERR! code EACCES 
npm ERR! errno -13 
npm ERR! syscall mkdir 

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash' 
npm ERR!  at Error (native) 
npm ERR! { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'] 
npm ERR! errno: -13, 
npm ERR! code: 'EACCES', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: '/home/rupesh/node_modules/lodash', 
npm ERR! fstream_type: 'Directory', 
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash', 
npm ERR! fstream_class: 'DirWriter', 
npm ERR! fstream_stack: 
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25', 
npm ERR!  '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53', 
npm ERR!  'FSReqWrap.oncomplete (fs.js:82:15)' ] } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! Please include the following file with any support request: 
npm ERR!  /home/rupesh/Desktop/es6/npm-debug.log 
+0

è il proprietario della cartella 'node_modules' root? – AJS

+0

La cartella node_module non è ancora stata creata all'interno della cartella in cui intendo installare lodash. – xruptronics

+0

hai eseguito l'installazione di npm nella tua directory/home/rupesh/o in qualche altra directory? – AJS

risposta

2

Creazione package.json utilizzando npm init risolto il mio problema.

+0

Ma non sono sicuro del perché il file package.json sia richiesto durante l'installazione del modulo nodo in quanto il file package.json non viene aggiornato o utilizzato nel mio caso perché non ho usato il comando --save o --save-dev o simile. – xruptronics

+0

questo è strano. Penso che una cosa sia stata incasinata nel tuo npm conf e fare in modo che init lo ripristini, comunque dovrebbe essere un mistero per sempre dato che non sono riuscito a trovare un riferimento a un problema simile altrove. – AJS

-1

Esso non dispone delle autorizzazioni di scrittura per others (r-x). Prova con

chmod a+w <folder> 

e ripetere.

+1

Non 'chown' ha l'opzione' -r' per evitare di doverla usare su ogni cartella in 'node_modules'? – DrakaSAN

+0

@Juanjo Salvador Non ha funzionato. Genera lo stesso errore. – xruptronics

+0

@DrakaSAN sì, chown ha un'opzione ricorsiva. –

2

Da quello che posso vedere nei log che hai postato:

directory
npm ERR! code: 'EACCES', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: '/home/rupesh/node_modules/lodash', 
npm ERR! fstream_type: 'Directory', 
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash', 
npm ERR! fstream_class: 'DirWriter', 

/home/Rupesh/node_modules/non dispone delle autorizzazioni necessarie per la creazione di directory in modo da eseguire chown -r rupesh:rupesh /home/rupesh/node_modules/ questo dovrebbe risolverlo.

+0

Fare chown -R rupesh: rupesh/home/rupesh/node_modules/ed eseguire npm installare lodash nuovamente installato lodash all'interno della cartella ~/node_module.Ma questa volta non genera errori.Ma non è dove intendo installare. – xruptronics

+0

sì, so che dovresti creare il progetto nella tua directory home piuttosto che in Desktop. npm per qualche ragione sta installando i tuoi moduli in '/ home/rupesh/node_modules' per qualche ragione. In ogni modo, lavorare nella tua directory home dovrebbe essere l'ideale, tuttavia lo – AJS

+0

funziona in ~/Projects/es6 o qualcosa del genere. – AJS

0

Prima installazione senza -g (globale) su root. Dopo aver provato a usare -g (globale) ha funzionato per me.

0

FWIW Ho avuto gli stessi sintomi, ma con un pacchetto diverso. La creazione di package.json e l'esecuzione di npm init hanno risolto il problema NON.

Su questo sistema, apparentemente nuove cartelle in questa posizione venivano create con permessi di root. Durante lo npm install, vengono create nuove cartelle. Ciò ha causato il fallimento dell'installazione di npm, anche con sudo.

La soluzione era eseguire npm install app in una posizione diversa senza umask radice.

Problemi correlati