npm lance l'erreur sans sudo

je viens d'installer node et npm à travers le paquet sur nodejs.org et chaque fois que j'essaie de chercher ou d'installer quelque chose avec npm, il lance l'erreur suivante, à moins que je sudo la commande. J'ai le sentiment que c'est un problème d'autorisations? Je suis déjà admin.

npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR!  { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/chietala/.npm/-/all/.cache.json' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.2.0
npm ERR! command "node" "/usr/local/bin/npm" "search" "bower"
npm ERR! cwd /Users/chietala
npm ERR! node -v v0.10.4
npm ERR! npm -v 1.2.18
npm ERR! path /Users/chietala/.npm/-/all/.cache.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/chietala/npm-debug.log
npm ERR! not ok code 0
1033
demandé sur Alisson Linneker 2013-04-22 19:35:37
la source

30 ответов

cela ressemble à un problème de permissions dans votre répertoire personnel. Récupérer la propriété du .mnp répertoire de l'exécuter:

sudo chown -R $(whoami) ~/.npm
1880
répondu Noah 2016-03-27 10:54:25
la source
Les Permissions

que vous avez utilisées lors de L'installation de Node seront nécessaires pour écrire dans votre répertoire npm ( npm link , npm install -g , etc.).

vous avez probablement lancé l'installation de noeuds avec les permissions root, c'est pourquoi l'installation globale du paquet vous demande d'être root.


Solution 1: NVM

Ne pas hack avec des autorisations, nœud installer le droit chemin.

sur une machine de développement, vous ne devez pas installer et exécuter un noeud avec des permissions racine, sinon des choses comme npm link , npm install -g auront besoin des mêmes permissions.

NVM (Node Version Manager) vous permet d'installer Node sans permissions root et vous permet également d'installer de nombreuses versions de Node pour jouer facilement avec eux.. Parfait pour le développement.

  1. Désinstaller Nœud racine de l'autorisation sera probablement nécessaire). ce pourrait vous aider.
  2. puis installer NVM instructions suivantes sur cette page .
  3. Install Node via NVM: nvm install node

maintenant npm link , npm install -g n'aura plus besoin de vous pour être root.

modifier: Voir aussi https://docs.npmjs.com/getting-started/fixing-npm-permissions


Solution 2: Installer des paquets globalement pour un utilisateur donné

ne pas hacker avec les permissions, installer les paquets npm globalement de la bonne manière.

si vous êtes sur OSX ou Linux, vous pouvez créer un répertoire utilisateur dédié pour votre paquet global et setup npm et node pour savoir comment trouver les paquets globalement installés.

Check out ce grand article pour des instructions étape par étape sur l'installation des modules npm globalement sans sudo.

Voir aussi: mnp documentation sur Fixation mnp autorisations .

493
répondu Yves M. 2018-03-13 00:37:42
la source

vous aurez aussi besoin de la permission d'écriture dans node_modules répertoire:

sudo chown -R $USER /usr/local/lib/node_modules
384
répondu Xilo 2015-05-12 18:40:00
la source

Je l'ai rencontré lors de l'installation de la suspension ( https://github.com/twitter/recess ) pour compiler mon CSS pour Bootstrap 3.

lors de l'installation de la suspension:

-npm install recess -g
  1. vous devez débloquer les permissions dans votre répertoire home , comme Noah dit:

    sudo chown -R `whoami` ~/.npm
    
  2. vous avez également besoin de permissions d'écriture à la node_modules répertoire, comme Xilo dit, donc si cela ne fonctionne toujours pas, essayez:

    sudo chown -R `whoami` /usr/local/lib/node_modules
    
  3. si vous voyez encore des erreurs, vous pouvez aussi avoir besoin de corriger /usr/local permissions :

    sudo chown -R `whoami` /usr/local
    

s'il vous Plaît noter que, comme indiqué dans ce post /usr/local/ n'est pas réellement un système de dir si vous êtes sur un Mac, donc, cette réponse est en fait parfaitement "sûre" pour les utilisateurs Mac. Cependant, si vous êtes sous Linux, voir Christopher Will 'S réponse ci-dessous pour un multi-utilisateur Facile, Système dir sûr (mais plus complexe) solution.

55
répondu danomarr 2017-05-23 15:18:27
la source

changer le propriétaire sur les dossiers "système-global" est un piratage. Sur une nouvelle installation, Je configurerais NPM pour utiliser un emplacement déjà accessible en écriture pour les programmes "user-global":

npm config set prefix ~/npm

ensuite, assurez-vous d'ajouter ce dossier à votre chemin:

export PATH="$PATH:$HOME/npm/bin"

Voir @ErikAndreas ' réponse à NPM modules ne pas installer partout dans le monde sans sudo et plus guide étape par étape par @sindresorhus avec aussi des sets $MANPATH .

51
répondu Joel Purra 2017-05-23 15:10:47
la source

D'autres réponses suggèrent de changer la propriété ou les permissions des répertoires système à un utilisateur spécifique. Je déconseille fortement de le faire, cela peut devenir très embarrassant et pourrait gâcher tout le système!

Voici une approche plus générique et plus sûre qui prend en charge multi-utilisateur ainsi.

crée un nouveau groupe pour les utilisateurs de noeuds et ajoute les utilisateurs requis à ce groupe. Ensuite, définissez la propriété des fichiers/répertoires dépendants des noeuds à ceci groupe.

# Create new group
sudo groupadd nodegrp 

# Add user to group (logname is a variable and gets replaced by the currently logged in user)
sudo usermod -a -G nodegrp `logname`

# Instant access to group without re-login
newgrp nodegrp

# Check group - nodegrp should be listed as well now
groups

# Change group of node_modules, node, npm to new group 
sudo chgrp -R nodegrp /usr/lib/node_modules/
sudo chgrp nodegrp /usr/bin/node
sudo chgrp nodegrp /usr/bin/npm

# (You may want to change a couple of more files (like grunt etc) in your /usr/bin/ directory.)

Maintenant, vous pouvez facilement installer vos modules en tant qu'utilisateur

npm install -g generator-angular

certains modules (grunt, bower, yo etc.) devra toujours être installé comme root. C'est parce qu'ils créent des liens symboliques dans /user/bin/.

Modifier

3 ans plus tard, je recommande d'utiliser Node Version Manager . Il coffres-vous beaucoup de temps et d'ennuis.

34
répondu Christopher Will 2017-09-21 11:06:54
la source

attention!!! attention!!! attention!!!

chown ou chmod est PAS la solution, en raison de la sécurité-risque.

au lieu de cela faire ceci, faire:

premier contrôle, où npm pointer, si vous appelez:

npm config get prefix

si / usr est retourné, vous pouvez faire ce qui suit:

mkdir ~/.npm-global
export NPM_CONFIG_PREFIX=~/.npm-global
export PATH=$PATH:~/.npm-global/bin

cela crée un npm-Direktory dans votre Home-Directory et y pointe npm.

pour obtenir ce changement permanent, vous devez ajouter la commande export à votre .bashrc:

echo -e "export NPM_CONFIG_PREFIX=~/.npm-global\nexport PATH=$PATH:~/.npm-global/bin" >> ~/.bashrc
15
répondu suther 2018-04-04 12:01:32
la source

la documentation officielle sur la façon de fixer npm install permissions avec une erreur EACCES se trouve à https://docs.npmjs.com/getting-started/fixing-npm-permissions .

j'ai rencontré ce problème après une nouvelle installation de node avec l'installateur .pkg sur OSX. Il y a de bonnes réponses ici, mais je n'ai pas vu de lien vers npmjs.com pas encore.

Option 1: Modifier la permission dans le répertoire par défaut de la npm

  1. trouvez le chemin d'accès au répertoire de la npm:

    npm config get prefix
    

pour de nombreux systèmes, ce sera /usr/local .

avertissement : si le chemin affiché est juste /usr , passez à Option 2 .

  1. changer le propriétaire des répertoires de la npm au nom de l'utilisateur courant (votre nom d'utilisateur!):

    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    

    modifie les permissions des sous-dossiers utilisés par npm et certains autres outils ( lib/node_modules , bin , et share ).

Option 2: Changer le répertoire par défaut de npm à un autre répertoire

il y a des moments où vous ne voulez pas changer la propriété du répertoire par défaut que la npm utilise (i.e. /usr ) car cela pourrait causer des problèmes, par exemple si vous partagez le système avec d'autres utilisateurs.

à la place, vous pouvez configurer npm pour utiliser un répertoire complètement différent. Dans notre cas, ce sera un répertoire caché dans notre dossier d'accueil.

  1. créer un répertoire pour les installations globales:

    mkdir ~/.npm-global
    
  2. Configurer les mnp à utiliser le nouveau chemin d'accès au répertoire:

    npm config set prefix '~/.npm-global'
    
  3. ouvrir ou créer un ~/.fichier de profil et ajouter cette ligne:

    export PATH=~/.npm-global/bin:$PATH
    
  4. de retour sur la ligne de commande, mettez à jour vos variables système:

    source ~/.profile
    
12
répondu HoppyKamper 2016-01-23 23:46:22
la source

comme si nous avions besoin de plus de réponses ici, mais de toute façon..

Sindre Sorus a un guide installer les paquets npm globalement sans sudo sur OS X et Linux soulignant comment installer proprement sans toucher aux permissions:

Voici une façon d'installer des paquets globalement pour un utilisateur donné.

  1. créez un répertoire pour vos paquets globaux

    mkdir "${HOME}/.npm-packages"
    
  2. référence ce répertoire pour usage futur dans votre .bashrc/.zshrc:

    NPM_PACKAGES="${HOME}/.npm-packages"
    
  3. indiquer au npm où stocker votre paquet installé à l'échelle mondiale. Dans votre fichier $HOME/.npmrc ajouter:

    prefix=${HOME}/.npm-packages
    
  4. assurez-vous que le noeud les trouvera. Ajoutez ce qui suit à votre .bashrc/.zshrc:

    NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
    
  5. assurez-vous de trouver les binaires et les pages de manuel installés. Ajouter ce qui suit à votre .bashrc / .zshrc :

    PATH="$NPM_PACKAGES/bin:$PATH"
    # Unset manpath so we can inherit from /etc/manpath via the `manpath`
    # command
    unset MANPATH # delete if you already modified MANPATH elsewhere in your config
    MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
    

Check out npm-g_nosudo pour faire les étapes ci-dessus automagiquement

consultez la source de ce guide pour les dernières mises à jour.

11
répondu ptim 2015-02-25 07:06:04
la source

lorsque vous exécutez npm install-g somepackage, vous pouvez obtenir une erreur EACCES vous demandant d'exécuter la commande à nouveau en tant que root/Administrator. C'est un problème d'autorisations.

Il est facile à fixer , ouvrez votre terminal (Applications > Utilitaires > Terminal)

sudo chown -R $USER /usr/local/lib/node_modules

* * je vous recommande fortement de ne pas utiliser la gestion des paquets avec sudo (sudo npm-g install something), parce que vous pouvez obtenir quelques problèmes plus tard * *

référence: http://foohack.com/2010/08/intro-to-npm /

8
répondu Juancarlos Rodríguez 2014-06-12 10:53:03
la source

Pour Mac (adopté de Christoper Sera la réponse de l')

Mac OS X 10.9.4

  1. Préférences Système > Utilisateurs Et Groupes > (déverrouiller) > appuyez sur la touche + :

    Nouveau Compte > "Groupe "

    Nom de Compte: nodegrp

    après avoir créé le groupe, cochez l'utilisateur à inclure dans ce groupe

  2. sudo chgrp-R nodegrp / usr / local/lib / node_modules /

    sudo chgrp nodegrp / usr / bin / node

    sudo chgrp nodegrp / usr / bin/npm

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

7
répondu ken 2014-09-10 09:16:39
la source

TL; DR

utilisez toujours sudo -i ou sudo -H lorsque vous lancez npm install pour installer des paquets globaux.

--

lorsque vous utilisez npm , il télécharge des paquets dans votre répertoire personnel. Lorsque vous utilisez sudo, npm installe les fichiers dans le même répertoire, mais ils sont maintenant détenus par root.

donc c'est ce qui arrive à absolument chaque personne célibataire ayant déjà utilisé npm :

  • installer certains paquets locaux sans problème en utilisant npm install foo
  • install package global à l'aide de sudo install -g foo-cli sans problème
  • tentative d'installation du paquet local avec npm install bar
  • être frustré par le npm concepteurs maintenant que vous devez aller chmod un répertoire à nouveau

quand vous utilisez l'option -i ou -H avec sudo, votre répertoire personnel sera le répertoire personnel de root . Toute installation globale mettra en cache les paquets vers /root/.npm au lieu des fichiers root détenus par /home/me/.npm .

utilisez toujours sudo -i ou sudo -H lorsque vous lancez npm install pour installer des paquets globaux et vos problèmes de permissions npm disparaîtront.

pour de bon.

http://hood.ie/blog/why-you-shouldnt-use-sudo-with-npm.html

-- voir les accepté de répondre pour la fixation d'un déjà baisé npm .

6
répondu rich remer 2016-07-29 20:16:28
la source

j'ai eu un problème similaire à modules NPM ne sera pas installer globalement sans sudo , le problème était que lorsque j'ai installé noeud Je l'ai fait avec sudo via chris/lea PPA repo .

ma solution était de désinstaller node et puis l'installer de cette façon:

Télécharger les dernières sources de noeuds stables à partir nodejs.org # in my case node-v0.10.20.tar.GZ

tar-zxf noeud-v0.10.20.tar.gz #décompresser les sources

cd nœud-v0.10.20 #entrer un dossier non compressé

sudo chown $USER-R/usr / local

./ configure --prefix= / usr / local & & make & & make install

PD: si vous ne voulez pas changer la propriété du dossier /usr/local, vous pouvez l'installer quelque part où vous possédez déjà. Le problème de cette approche est que vous aurez à lier l'installation dossier avec la ligne de commande bash pour que nous puissions utiliser la commande node plus tard sur

mkdir ~ / opt

./configure --prefix=~ / opt & & make & & make install

echo ' export PATH=~ / opt /bin:${PATH}'>>~/.bashrc #ou ~/.profile ou ~/.bash_profile ou ~/.zshenv en fonction du système opérationnel actuel

Avec l'une de ces approches, vous serez en mesure de faire ce qui suit sans utiliser sudo

npm install-g module_to_install

5
répondu HeberLZ 2017-05-23 15:26:36
la source

dans mon cas,c'est à cause de la permission de ~/tmp.C'est ce que je fais:

sudo chown -R $USER ~/tmp

et C'est bon!

5
répondu bnPYSse 2014-03-28 02:52:47
la source

Pour moi, exécuter uniquement

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

ne marche pas. Puis, j'exécute aussi

sudo chown -R $(whoami) /usr/lib/node_modules/
sudo chown -R $(whoami) /usr/bin/node
sudo chown -R $(whoami) /usr/bin/npm

et tout fonctionne bien!

3
répondu user3753202 2015-01-15 04:16:35
la source

problème: Vous n'avez pas la permission d'écrire dans les répertoires que la npm utilise pour stocker des paquets et des commandes globales.

Solution: Autoriser pour les mnp.

ouvrir un terminal:

commande + barre d'espace, puis tapez "terminal"

entrez cette commande:

sudo chown -R $(whoami) $(mnp config obtenir préfixe)/{lib/node_modules,bin,action}

  • Note: Ceci nécessitera votre mot de passe.

cette solution permet d'Autoriser seulement les répertoires nécessaires, en gardant les autres répertoires agréables et sûrs.

3
répondu Matt 2016-10-06 22:11:11
la source

sur Mac OS X, lors de l'installation avec Homebrew brew install npm , le chemin d'installation est /usr/local/share/npm/ avec à la fois bin/ et lib/node_modules/ sous-dossiers.

exécuter cette commande pour changer de propriétaire à votre utilisateur actuellement connecté devrait corriger tout cela, et vous permettre d'installer des paquets NPM globaux sans sudo .

sudo chown -R $USER ~/.npm /usr/local/share/npm/

2
répondu Joel Purra 2013-10-28 11:15:30
la source

Voici comment j'ai résolu le problème sur Windows 8.1:

  • allez à votre installation nodejs (habituellement C:\Program Files\nodejs)
  • clic droit sur le dossier node_modules et aller aux propriétés
  • cliquez sur l'onglet Sécurité et avancé
  • en haut vous verrez "propriétaire: système", cliquez sur Modifier
  • entrez l'utilisateur pour lequel vous voulez des permissions et cliquez sur Ok
  • Vérifier le boîte en bas des paramètres avancés "remplacer toutes les entrées de permission d'un objet enfant par des entrées de permission héritées de cet objet" et cliquer ok
  • faire tout ce que npm installer/mettre à jour vous avez besoin
2
répondu KCaradonna 2016-04-03 17:26:36
la source

dans le cas sudo chown -R $(whoami) ~/.npm n'a pas fonctionné pour vous, ou vous avez besoin d'une solution de commande non-terminal.

le problème est que votre compte d'utilisateur n'a pas la permission d'écrire dans le dossier node_modules, vous pouvez donc faire ce qui suit""

  1. Ouvrez le finder et appuyez sur cmd + shift + g cela va ouvrir aller au dossier avec l'url

  2. écrivez le chemin suivant /usr/local/lib/node_modules et appuyez sur go

  3. clic droit sur node_modules dossier et choisir Get Info

  4. Faites défiler vers le bas jusqu'à sharing & permissions section

  5. déverrouiller pour pouvoir faire des changements.

  6. appuyez sur + et ajoutez votre compte d'utilisateur

  7. assurez-vous que vous choisissiez Read & Write dans la baisse de privilège

Maintenant, vous devriez être en mesure d'installer des paquets sans sudo et les problèmes de permission devraient être résolus

2
répondu Amr Labib 2018-02-07 08:22:39
la source

en fait, j'avais aussi le même problème. Je dirigeais Ubuntu. Mon problème se pose parce que j'ai perdu ma clé publique de L'Ubuntu. Même la mise à jour de mon système ne se produisait pas. Il donnait une erreur de GPG. Dans ce cas, vous pouvez récupérer votre clé en utilisant cette commande:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <key in GPG error>

après que npm fonctionne très bien!

1
répondu sam100rav 2013-11-13 16:42:44
la source

John Papa souligne l'histoire et le raisonnement derrière cette question et donne une solution solide :

John Papa étapes sont les suivantes:

  1. Utilisation de brew à installer nœud sans mnp
  2. mettez à jour votre .bash_profile/.bashrc pour laisser mnp et le nœud de savoir où installer et de trouver les paquets
  3. utiliser brew pour mettre à jour node et npm pour se mettre à jour

Hope cela aide les curieux!

1
répondu theship 2015-06-10 21:12:08
la source

si quelque chose comme ci-dessous apparaît pendant l'installation npm ou si vous voulez installer des paquets globalement sur un Mac utiliser Sudo

npm ERR! code EACCES

npm ERR! errno -13

npm ERR! accès syscall 151910920"

1
répondu Ignatius Andrew 2016-03-09 17:25:46
la source

ISSUE : vous (l'utilisateur) n'avez pas le bon jeu de permissions pour le répertoire.

la sortie instantanée est d'exécuter l'installation npm en utilisant sudo, mais cela peut vous donner la même erreur, ou une installation incorrecte.

et changer de propriétaire de répertoire n'est pas une bonne option, Un correctif temporaire.


Solution / Suggestion : changer le répertoire par défaut de npm (de docs )

Sauvegardez votre ordinateur avant d'aller de l'avant.

(optionnel) dans le cas où vous avez une installation erronée, désinstallez d'abord:

npm uninstall <package-name>  # use sudo if you used it while installation
npm cache verify  # or, npm cache clean for npm version below 5.x.x 
  1. créer un répertoire pour les installations globales:

    mkdir ~/.npm-global

  2. Configurer les mnp à utiliser le nouveau chemin d'accès au répertoire:

    npm config set prefix '~/.npm-global'

  3. ouvrir ou créer un fichier ~/.profile ou ~/.bash_profile et ajouter cette ligne:

    export PATH=~/.npm-global/bin:$PATH

  4. de retour sur la ligne de commande, Mettre à jour vos variables système, ou redémarrer le terminal:

    source ~/.profile

  5. (facultatif) essai: télécharger un colis globalement sans utiliser sudo.

    npm install -g jshint

1
répondu Nabeel Ahmed 2017-12-26 14:09:23
la source

si vous changez les permissions pour directory /usr/local/lib/npm_modules pas d'aide, u devrait ajouter votre utilisateur au groupe (dans la plupart des cas c'est le groupe staff ), qui a des droits rwx pour le répertoire /usr/bin . Parce que npm essaie de faire symlink avec /usr/bin/__package__ .

P.S. N'oubliez pas de relogin après avoir changé de groupe d'utilisateurs

0
répondu Victor Perov 2014-12-25 21:13:17
la source

C'est la solution que j'ai utilisée et travaillé. J'ai essayé d'utiliser whoami n'a jamais fonctionné.

sudo chown -R $USER /usr/local/lib/node_modules

puis

sudo chown -R $USER /usr/local/bin/npm

puis

sudo chown -R $USER /usr/local/bin/node

0
répondu Casey Robinson 2015-08-12 17:59:43
la source

un autre grand correctif ici pour configurer NPM correctement, exécutez les commandes suivantes:

npm config set prefix '~/.npm_packages'
PATH=$PATH:$HOME/.npm_packages/bin; export PATH
0
répondu Guillaume Le Mière 2016-01-25 15:50:56
la source

@Yves M. La réponse était très similaire à ma solution. Voici les commandes que j'ai utilisées, qui étaient légèrement différentes de la sienne.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

alors rechercher la dernière version:

nvm ls-remote

puis installer la dernière version:

nvm install YOUR_VERSION_HERE

exemple

nvm install v5.8.0
0
répondu Ryan Loggerythm 2016-03-14 07:02:18
la source

ce qui me semble être la meilleure option est celle suggérée dans la documentation npm , qui est de vérifier d'abord où global node_modules sont installés par défaut en exécutant npm config get prefix . Si vous obtenez, comme je le fais sur Trusty, /usr , vous pourriez vouloir le changer à un dossier que vous pouvez posséder en toute sécurité sans gâcher les choses de la façon dont je l'ai fait.

Pour ce faire, choisissez ou créez un nouveau dossier dans votre système. Vous pouvez l'avoir dans votre Home directory ou, comme moi, sous /usr/local pour la cohérence car je suis aussi un utilisateur Mac (je préfère ne pas avoir à chercher à différents endroits en fonction de la machine devant laquelle je me trouve). Une autre bonne raison de faire cela est le fait que le dossier /usr/local est probablement déjà dans votre chemin (à moins que vous aimiez jouer avec votre chemin) mais il y a des chances que votre dossier nouvellement créé ne l'est pas et vous auriez besoin de l'ajouter au chemin vous-même sur votre .profil bash ou .bashrc "1519130920 de fichier".

pour faire court, j'ai changé l'emplacement par défaut des modules globaux avec npm config set prefix '/usr/local' , créé le dossier /usr/local/lib/node_modules (il sera utilisé par npm) et modifié les permissions pour les dossiers utilisés par npm avec la commande:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Maintenant vous pouvez globalement installer n'importe quel module en toute sécurité. Espérons que cette aide!

0
répondu yago 2016-03-19 17:39:37
la source

Je ne prends aucun crédit pour cette solution. Remerciez ce type: https://gist.github.com/isaacs/579814

# take ownership of the folders that npm/node use
# please don't do this if you don't know what it does!
sudo mkdir -p /usr/local/{share/man,bin,lib/node,include/node}
sudo chown -R $USER /usr/local/{share/man,bin,lib/node,include/node}

# now just a pretty vanilla node install
# let it use the default paths, but don't use sudo, since there's no need
mkdir node-install
curl http://nodejs.org/dist/node-v0.4.3.tar.gz | tar -xzf - -C node-install
cd node-install/*
./configure
make install

# now the npm easy-install
curl https://www.npmjs.org/install.sh | sh

et puis ...

sudo chown -R web:web /home/web/api/
sudo runuser -l web -c 'npm install --prefix /home/web/api'

de cette façon, node n'est jamais exécuté en tant que root et votre utilisateur peut installer sans sudo.

0
répondu BugHunterUK 2018-05-25 00:13:29
la source

, vous pouvez essayer ce

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
0
répondu Adeojo Emmanuel IMM 2018-07-27 11:03:18
la source

Autres questions sur