web-dev-qa-db-fra.com

Erreur d'installation de NPM refusée en utilisant l'utilisateur root

J'ai donc fait une nouvelle installation de npm/node sur ma machine locale en utilisant NVM en utilisant l'utilisateur root et tout semble bien, maintenant mon problème est quand j'ai essayé d'installer en utilisant npm install --unsafe-perm -verbose La commande sur mon dossier de projet affiche une erreur dans mon terminal.

npm verb stack Error: Command failed: /usr/bin/git clone --depth=1 -q -b 0.0.7 https://github.com/Mango/emitter.git /root/.npm/_cacache/tmp/git-clone-28a98ad9
npm verb stack fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-28a98ad9': Permission denied
npm verb stack 
npm verb stack     at ChildProcess.exithandler (child_process.js:282:12)
npm verb stack     at ChildProcess.emit (events.js:182:13)
npm verb stack     at maybeClose (internal/child_process.js:957:16)
npm verb stack     at Socket.stream.socket.on (internal/child_process.js:378:11)
npm verb stack     at Socket.emit (events.js:182:13)
npm verb stack     at Pipe._handle.close [as _onclose] (net.js:598:12)
npm verb cwd /web/nbltv
npm verb Linux 4.15.0-29-generic
npm verb argv "/root/.nvm/versions/node/v10.1.0/bin/node" "/root/.nvm/versions/node/v10.1.0/bin/npm" "install" "--unsafe-per" "-verbose"
npm verb node v10.1.0
npm verb npm  v5.6.0
npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b 0.0.7 https://github.com/Mango/emitter.git /root/.npm/_cacache/tmp/git-clone-28a98ad9
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-28a98ad9': Permission denied
npm ERR! 
npm verb exit [ 1, true ]

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-08-20T01_36_33_496Z-debug.log

version NPM - 5.6 version NODE - 10.1

Toute aide serait très appréciée. Merci!

4
PenAndPapers

Montrez votre node_modules et ne vous exécutez pas en tant que Sudo.

Vous devriez toujours avoir la propriété du répertoire .npm Car NPM refusera d'installer des modules natifs avec Sudo car c'est un risque de sécurité par exemple.

Essayez Sudo chown -R $(whoami) ~/.npm et voyez si cela fonctionnerait.

Ou réinstaller avec un gestionnaire de version de noeud sans root comme recommandé dans le docs :

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
10
U-ways

La création d'un nouveau stockage global dans votre espace utilisateur est le moyen recommandé pour éviter cette erreur. N'utilisez pas Sudo et ne changez pas la propriété des emplacements.

$ mkdir ~/.npm-global
$ npm config set prefix '~/.npm-global'
$ export PATH=~/.npm-global/bin:$PATH
$ source ~/.profile

Cependant, puisque vous utilisez npm 5.6, cela pourrait être plus pertinent pour vous:

npx: une alternative à l'exécution de commandes globales

Si vous utilisez npm version 5.2 ou supérieure, vous souhaiterez peut-être considérer npx comme un moyen alternatif d'exécuter des commandes globales, surtout si vous n'avez besoin que d'une commande occasionnellement. Pour plus d'informations, consultez cet article sur npx .

Source: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

7
aalaap