J'ai mentionné que mon application utilise une version différente de NodeJS lors de l'exécution à partir de sudo
.
$ node -v
v0.10.23
$ sudo node -v
v0.11.8-pre
Cette v0.11.8-pre m'a causé quelques problèmes, donc je ne veux certainement pas l'utiliser, mais je ne peux pas la changer pour root.
$ sudo nvm use v0.10.23
sudo: nvm: command not found
J'ai essayé d'installer nvm à partir de l'utilisateur root, mais j'ai obtenu l'erreur "NVM déjà installé", mais nvm toujours pas trouvé lors de l'exécution de sudo
. Quel est mon problème?
sudo -s
puis installeznvm
.Réponses:
La liste de commandes ci-dessous (source: digitalocean ) semble résoudre le problème
La commande ci-dessus est un peu compliquée, mais tout ce qu'elle fait est de copier la version du nœud que vous avez active via nvm dans le
/usr/local/
répertoire (où les fichiers globaux installés par l'utilisateur doivent vivre sur un VPS Linux) et de définir les autorisations afin que tous les utilisateurs puissent y accéder .J'espère que cela t'aides!
la source
chmod: cannot operate on dangling symlink ‘/home/ec2-user/.nvm/versions/node/v7.1.0/bin/node-debug’ chmod: cannot operate on dangling symlink ‘/home/ec2-user/.nvm/versions/node/v7.1.0/bin/node-inspector’
Ma solution est de créer des liens symboliques à partir des versions de
node
et quenpm
j'utilise pour/usr/local/bin
:Cela rend
npm
etnode
disponible à tous les utilisateurs.la source
npx
assez souvent. Alors je l'ai ajouté aussi:sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npx" "/usr/local/bin/npx"
babel-node
Votre problème est que ce
nvm
n'est pas dans le chemin lorsque vous utilisezsudo
.Alors tapez
et le résultat sera quelque chose comme
Réessayez maintenant avec
sudo
:Je suppose que vous rencontrez alors le problème que l'utilisateur root ne peut pas trouver la version 0.10.13, mais voyons le message d'erreur suivant ...
la source
which nvm
ne produit riensudo
. Oui, je peux me connecter en tant que root et installer nvm, mais à l'avenir je ne pourrais pas courirsudo nvm use v0.10.25
. Je ne pouvais donc pas non plus utilisersudo node
de l'utilisateur.which nvm
ne fonctionne jamais, n'est-ce pas?nvm
n'est pas un exécutable, c'est une fonction shell. github.com/creationix/nvm/issues/540which nvm
ici: stackoverflow.com/questions/49156104/... Utiliseztype nvm
pour révéler sa définition. Comme Matt l'a dit, c'est une fonction shell.La raison fondamentale est que ce
nvm
n'est pas un vrai programme. Il est une fonction bash qui est chargé dans de l'utilisateur.profile
,.bashrc
ou ... Donc ,sudo
ne pas choisir automatiquement à partir du $ PATH comme la plupart des autres programmes.Un autre gestionnaire de version de nœud est
n
: https://github.com/tj/n . Ce programme est un réel, doncsudo
va le ramasser par le chemin de $ sans hacks (aussi longtemps quesudo
possède/usr/local/bin
dans son PATH $).la source
Selon README
Besoin de sudo npm?
Dans mon cas, j'ai besoin de
sudo npm run start
qui a besoin d'accéder à un fichier nécessitant un accès root. D'après ce numéro ,En somme
Le mainteneur de nvm croit fermement que nous n'avons pas besoin de
sudo
: Pla source
J'ai eu ton problème aussi. Enfin, j'ai travaillé autour de cela. Voici ma solution:
apt-get purge nodejs
.Après avoir redémarré votre terminal, vous pouvez exécuter la commande
sudo nvm ls
.la source
la source
J'ai essayé la même chose sur ma machine où j'ai
nvm
aussi et j'ai une réponse légèrement différente:Je suppose que vous avez installé le nœud 0.11 en dehors de nvm. ( Via le gestionnaire de packages ou même à partir de la source )
Par conséquent, exécuter le nœud via sudo sélectionnerait ce nœud autonome à la place.
Est-ce que cela a du sens ou est-ce que je me trompe?
la source
Installez NVM globalement avec
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | sudo bash
la source
| bash
, aucun sudo nulle part: nvm-sh / nvm: Node Version ManagerLa solution la plus simple à cela sera probablement de frapper simplement l'exécutable nvm.sh où qu'il se trouve.
Cela fonctionne bien pour moi (en supposant que ce soit le chemin d'installation).
La procédure d'installation complète ressemblerait à
Et puis vous pouvez exécuter la commande ci-dessus pour frapper le nvm.sh nouvellement installé
la source