Le nom de l'interpréteur NodeJS ( node
) sur Ubuntu a été renommé en nodejs
raison d'un conflit de nom avec un autre package. Voici ce que le readme. Debian dit:
Le nom en amont de la commande d'interpréteur Node.js est "node". Dans Debian, la commande interprète a été changée en "nodejs".
Cela a été fait pour éviter une collision d'espace de noms: d'autres commandes utilisent le même nom dans leur amont, comme ax25-node du package "node".
Les scripts appelant Node.js en tant que commande shell doivent être modifiés pour utiliser à la place la commande "nodejs".
Cependant, l'utilisation de nodejs détruit l'installation de packages à l'aide de npm
. L'installation du package échoue avec l'erreur suivante:
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
Comment faire comprendre à npm que nodejs est déjà installé sur le système mais que le nom de l'interpréteur est différent?
ln -s nodejs node
dans/usr/bin
. C'est une sorte de hack cependant.Réponses:
TL; DR:
Permettez-moi tout d'abord de clarifier un peu la situation. Au cours de l'été 2012, les responsables Debian ont décidé de renommer l'exécutable Node.js pour éviter une sorte de collision d'espace de noms avec un autre paquet. Ce fut une décision très difficile pour le comité technique Debian, car elle rompt la compatibilité descendante.
Ce qui suit est une citation du projet de résolution du Comité, publié dans la liste de diffusion Debian :
Le paragraphe 2 est la solution réelle au problème du PO. OP devrait essayer d'installer ce paquet au lieu de faire un lien symbolique à la main. Voici un lien vers ce paquet dans le site Web d' index des paquets Debian .
Il peut être installé à l'aide de
sudo apt-get install nodejs-legacy
.Je n'ai trouvé aucune information sur l'adoption du tout par les développeurs de NPM, mais je pense que le
npm
package sera corrigé à un moment donné etnodejs-legacy
deviendra vraiment un héritage.la source
sudo apt-get install nodejs-legacy
Essayez de lier un nœud à nodejs. Découvrez d'abord où est nodejs
Ensuite, le nœud de liaison souple vers nodejs
Je suppose que / usr / bin est dans votre chemin d'exécution. Ensuite, vous pouvez tester en tapant node ou npm dans votre ligne de commande, et tout devrait fonctionner maintenant.
la source
nodejs-legacy
package est plus facile./usr/bin
moins que vous soyezdpkg
. La bonne solution (si vous aimez cette approche de liaison symbolique manuelle) est de créer le lien symbolique dans/usr/local/bin
lequel est désigné pour les installations et les remplacements locaux. Tout ce que vous faites manuellement/usr/bin
peut être et sera écrasé par le gestionnaire de paquets et / ou le confondra.Vous pouvez également installer Nodejs à l'aide de NVM ou de Nodejs Version Manager. L' utilisation d'un gestionnaire de versions présente de nombreux avantages . L'un d'eux étant que vous n'avez pas à vous soucier de ce problème.
Instructions:
Une fois les packages requis installés, vous pouvez dérouler le script d'installation nvm depuis la page GitHub du projet. Le numéro de version peut être différent, mais en général, vous pouvez le télécharger et l'installer avec la syntaxe suivante:
Cela va télécharger le script et l'exécuter. Il installera le logiciel dans un sous-répertoire de votre répertoire personnel à l'adresse
~/.nvm
. Il ajoutera également les lignes nécessaires à votre~/.profile
fichier pour utiliser le fichier.Pour accéder à la fonctionnalité nvm, vous devrez vous déconnecter et vous reconnecter, ou vous pouvez source le fichier ~ / .profile afin que votre session actuelle soit au courant des changements:
Maintenant que nvm est installé, vous pouvez installer des versions isolées de Node.js.
Pour connaître les versions de Node.js disponibles pour l'installation, vous pouvez taper:
Comme vous pouvez le voir, la version la plus récente au moment d'écrire ces lignes est la v0.11.14. Vous pouvez l'installer en tapant:
En général, nvm passera pour utiliser la dernière version installée. Vous pouvez explicitement dire à nvm d'utiliser la version que nous venons de télécharger en tapant:
Lorsque vous installez Node.js à l'aide de nvm, l'exécutable est appelé node. Vous pouvez voir la version actuellement utilisée par le shell en tapant:
Le tutoriel complet peut être trouvé ici
la source
usr/bin/node
. Alors courusudo ln -s /home/www/.nvm/v0.10.36/bin/node /usr/bin/node
Installez d'
nvm
abord en utilisant:Exécuter la commande
Maintenant, exécutez ceci et cela montrera toutes les versions installées ou d'autres packages:
Les packages installés seront en vert. Installez la version que vous souhaitez:
Vérifiez où n'est pas installé:
Vérifier la version actuelle:
la source
Combiné la réponse acceptée avec
source ~/.profile
le commentaire qui a été plié et certaines commandes de nettoyage avant. Très probablement, vous devrez également le fairesudo apt-get install npm
après.la source
pour moi le problème a été résolu par,
la source
Voici une autre approche que j'utilise car j'aime n pour basculer facilement entre les versions de nœuds.
Sur un nouveau système Ubuntu, installez d'abord le nœud 'système':
Installez ensuite n module globalement:
Puisque le nœud système a été installé en premier (ci-dessus), le système alternatif peut être utilisé pour pointer proprement vers le nœud fourni par n . Assurez-vous d'abord que le système alternatif n'a rien pour le nœud:
Ajoutez ensuite le nœud fourni par n :
Ajoutez ensuite le nœud fourni par le système (celui qui a été installé avec curl):
Sélectionnez maintenant le nœud fourni par n à l'aide du menu interactif (sélectionnez
/usr/local/bin/node
dans le menu présenté par la commande suivante):Enfin, étant donné
/usr/local/bin
que la priorité est généralement plus élevée dans PATH que/usr/bin
, l'alias suivant doit être créé (entrez votre .bashrc ou .zshrc) pour que le nœud système alternatif soit efficace; sinon le nœud installé avec n dans / usr / local / bin a toujours la priorité:Maintenant, vous pouvez facilement basculer entre les versions de nœuds avec
n <desired node version number>
.la source
Sur Linux Mint 17, j'ai essayé les deux solutions (créer un lien symbolique ou utiliser le
nodejs-legacy
package) sans succès.La seule chose qui a finalement fonctionné pour moi était d'utiliser le ppa de Chris Lea:
Ce nœud installé version 10.37 et npm 1.4.28. Après cela, j'ai pu installer des packages à l'échelle mondiale.
la source
Comme d'autres le mentionnent déjà, je proposerai de ne pas utiliser "sudo apt-get" pour installer le nœud ou toute bibliothèque de développement. Vous pouvez télécharger la version requise depuis https://nodejs.org/dist/v6.9.2/ et configurer votre propre environnement.
Je recommanderai des outils comme nvm et n , pour gérer votre version de nœud. Il est très pratique de commuter et de travailler avec ces modules. https://github.com/creationix/nvm https://github.com/tj/n
Ou écrivez bash basique pour télécharger zip / tar, extraire le dossier de déplacement et créer un lien logiciel. Chaque fois que vous devez mettre à jour, pointez simplement l'ancien lien logiciel vers la nouvelle version téléchargée. Comme je l'ai créé pour moi-même, vous pouvez vous référer: https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh
la source
Solution simple d' ici
Vous pouvez spécifier la version en changeant la valeur de setup_x.x, par exemple en setup_5.x
la source
Votre système n'est pas en mesure de détecter le binaire du nœud de chemin js.
1. quel nœud
2.Ensuite, le nœud de liaison douce vers nodejs
Je suppose que / usr / bin est dans votre chemin d'exécution. Ensuite, vous pouvez tester en tapant node ou npm dans votre ligne de commande, et tout devrait fonctionner maintenant.
la source
Désinstallez la version de nœud que vous possédez
installer nvm (Node Version Manager) https://github.com/creationix/nvm
Vous pouvez maintenant installer la version de nœud que vous souhaitez et basculer entre les versions.
la source
nvm
, notez que le package nodejs-legacy est v0.10.25. (ou du moins, c'est ce que j'ai vu quand je l'ai essayé.)Je l'ai corrigé en dissociant / usr / sbin / node (qui est lié au package ax25-node), puis j'ai créé un lien vers nodejs en utilisant ceci sur la ligne de commande
Parce qu'un package tel que karma ne fonctionne pas avec le nom nodejs, mais en changeant la première ligne du script karma de node en nodejs, mais je préfère résoudre ce problème une fois pour toutes
la source
Pour moi, le correctif supprimait les packages node * et également les packages npm.
Puis une nouvelle installation comme:
la source
sudo apt-get autoclean
fait "la même chose" quesudo apt-get install autoclean
Le problème n'est pas dans le programme d'installation,
remplacez nodejs par node ou changez le chemin de / usr / bin / nodejs à / usr / bin / node
la source
C'est que votre nœud n'est pas correctement installé, vous devez d'abord désinstaller le nœud, puis réinstaller. Pour installer le nœud, cela peut vous aider http://array151.com/blog/nodejs-tutorial-and-set-up/
après cela, vous pouvez facilement installer les packages. Pour installer les packages, cela peut vous aider
http://array151.com/blog/npm-node-package-manager/
la source
vous pouvez créer un
ln -s nodejs
nœud de lien en/usr/bin
espérant que cela résoudra votre problème.la source