2015-01-19 9 views
7

Sto provando a configurare Node.js e NPM su una macchina Ubuntu 14.04 ma ho qualche problema. Al primo tentativo ho continuato a ricevere errori EACCES quando provavo ad installare pacchetti (a volte anche con sudo), quindi ho disinstallato completamente il nodo e npm. Ora sto cercando di capire come installarli in un modo che non mi richiederà di eseguire tutto sudo e non mi darà errori EACCES.Come installare Node e NPM in modo da non dover usare sudo?

Preferisco non utilizzare NVM e, a parte questo, ho appena trovato una serie di risposte parziali sparse, alcune delle quali si contraddicono a vicenda, o usano solo una sintassi leggermente diversa.

Apprezzerei molto l'aiuto con questo. Ho appena effettuato il passaggio a Linux da Windows e sto provando a configurarlo in modo da poter iniziare a lavorare di nuovo.

risposta

18

Il problema che genera un EACCES è spesso un problema di autorizzazioni su due cartelle:

Ci potrebbe essere un problema di autorizzazioni sulla directory ~/.npm.

Il percorso completo della directory '~/.npm' è '/Users/YOUR_USERNAME/.npm'; memorizza varie funzionalità di npm. Il modo più semplice per arrivare alla tua home directory su un sistema basato su Unix (credo anche su linux) è di digitare 'cd'.

Potrebbe anche esserci un problema di autorizzazioni su/usr/local/lib/node_modules.

Qui è dove npm prova a memorizzare i moduli installati a livello globale. È la versione a livello di sistema della cartella 'node_modules' che trovi praticamente in qualsiasi progetto node.js che crei e installi con le dipendenze.

Realmente ho creato un pacchetto di nodi che risolverà questo problema su un mac, anche se non sono sicuro di Linux (perché i percorsi di '.npm' e 'node_modules' potrebbero essere diversi su linux), potresti dare un colpo? Fondamentalmente ti riafferma come proprietario di quelle directory.

Ecco la pagina GitHub:

https://github.com/yvanscher/fixmynode (solo una breve nota di questo pacchetto potrebbe non essere aggiornato a causa di un problema di accumulo strano con la dipendenza osenv)

Se si reinstalla il nodo si potrebbe provare a cambiare le autorizzazioni di te stesso con questi comandi (che dovrebbe funzionare in Linux):

sudo chown -R $(whoami) ~/.npm

sudo chown -R $(whoami)/usr/loca l/lib/node_modules

NOTA: Io non sono sicuro al 100% che i percorsi '/ usr/local/lib/node_modules' e '~/.npm' siano corrette per un nodo basato su Linux/NPM installo . Puoi postare il messaggio di errore completo nel terminale?

+2

Grazie, ho finito per eseguire 'chown' su'/usr/local/lib/node_modules', '~/.npm' e'/usr/lib/node_modules'. Devo ancora usare 'sudo' per qualsiasi azione globale, il che va bene, ma a parte ciò sembra che tutto funzioni senza intoppi. –

Problemi correlati