J'essaie d'installer nodeJs dans Ubuntu 14.04 pour pouvoir utiliser GruntJs.
J'ai lu sur Ubuntu de différentes manières de le faire ( des problèmes? ), c'est ce que j'ai fait pour l'installer
Sudo apt-get install npm
Sudo npm install -g grunt-cli
Taper grognement après que j'ai eu l'erreur:
/usr/bin/env: node: No such file or directory
Alors j'ai essayé:
curl -sL https://deb.nodesource.com/setup | Sudo bash -
Sudo apt-get install -y nodejs
Sudo apt-get update
Et en essayant encore et en obtenant toujours l'erreur, j'ai essayé:
Sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/
Sudo apt-get install -y nodejs
J'ai ce message:
nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
J'ai essayé un nettoyage au cas où:
Sudo apt-get autoremove
Mais non, l’erreur est toujours là: quand je tape grunt je reçois toujours /usr/bin/env: node: No such file or directory
Que devrais-je faire?
Trouvé la réponse. Juste au cas où cela pourrait aider quelqu'un, je le publie ici:
Faire un lien symbolique résout le problème: ln -s /usr/bin/nodejs /usr/bin/node
(Merci et +1 vote pour bodokaiser ).
NOTE: Je pense que ce message n'est pas une copie exacte, car il s'agissait en quelque sorte d'une question de browserify.
Le problème ne concerne pas la version du noeud. Au lieu de cela, c'est la façon dont NodeJS est installé par défaut dans Ubuntu. Lorsque vous exécutez une application Node dans Ubuntu, vous devez exécuter nodejs somethign.js
au lieu de node something.js
Ainsi, le nom de l'application appelée dans le terminal est nodejs
et non node
. C'est pourquoi un lien symbolique est nécessaire pour transférer simplement toutes les commandes reçues en tant que node
à nodejs
.
ln -s /usr/bin/nodejs /usr/bin/node
Je pense que vous devriez mettre à jour la dernière version du noeud
Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
si vous pouvez accéder au noeud sur le terminal ubuntu en utilisant la commande nodejs, ce problème peut être simplement résolu en utilisant - en créant un lien symbolique entre nodejs et noeud en utilisant
ln -s /usr/bin/nodejs /usr/bin/node
et cela peut résoudre le problème
Dans mon cas, installation de nodejs-legacy } a résolu le problème.
Sudo apt-get install nodejs-legacy
Il suffit de faire
$ Sudo apt-get install nodejs-legacy
Et ça va commencer à fonctionner.
J'ai trouvé qu'il s'agit souvent d'une erreur de nom. Si vous installez à partir d'un gestionnaire de paquets, votre bin peut s'appeler nodejs.
ln -s /usr/bin/nodejs /usr/bin/node
Si vous avez déjà installé nodejs (vérifiez avec which nodejs
) et que vous ne voulez pas installer un autre paquet, vous pouvez, en tant que root:
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
Quand j'utilisais gulp, j'ai eu cette erreur.
~$ gulp
/ usr/bin/env: ‘noeud’: aucun fichier ni répertoire de ce type
Ceci a été supprimé en exécutant la commande suivante, vous devez garder à l'esprit que le répertoire/usr/bin possède toutes les autorisations.
~$ ln -s /usr/bin/nodejs /usr/bin/node
cela fonctionne pour moi ..
Il y a deux solutions à cela:
a) Définissez votre variable PATH pour inclure "/ usr/local/bin"
export PATH="$PATH:/usr/local/bin"
b) Créez un lien symbolique vers "/ usr/bin" qui se trouve déjà dans votre PATH
ln -s /usr/bin/nodejs /usr/bin/node
J'espère que ça aide.
Alors que ln -s
est la solution la plus simple, voici une explication:
En raison d'un conflit avec un autre package, l'exécutable du fichier Les référentiels Ubuntu sont appelés nodejs au lieu de node. Gardez ceci dans l'esprit que vous exécutez un logiciel.
Ce conseil apparaît lors de l'installation de Sudo apt-get install nodejs
.
Ainsi, un autre outil connu (je ne sais pas ce qu’il fait. Bien qu’il soit connu des référentiels Ubuntu, il n’est pas installé par défaut dans 16.04) occupe cet espace de noms.
Cela aurait été bien si Ubuntu avait offert un conseil sur la façon de résoudre ce problème "proprement", sinon en faisant à la main ce que le paquet ferait autrement. (une collision reste une collision ... si + quand elle se produirait)
Sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
Suivez ces commandes pour résoudre le problème,
étape 1. Ouvrez le terminal et tapez,
Sudo npm cache clean -f
Cette commande va nettoyer tout le cache NPM
puis entrez le mot de passe
étape 2.
Sudo npm install -g n
étape 3.
Sudo n stable
En utilisant cette commande, vous pouvez installer la dernière version stable du noeud.
Maintenant, la dernière version du noeud sera installée. Vous pouvez vérifier la version par:
node -v
En fonction de la manière dont vous avez installé votre nœud, la plupart du temps, il se peut que ce ne soit pas dans/usr/bin /, dans mon cas, c’était j’utilisais nvm pour l’installer et mon nœud se trouvait dans ./nvm/versions.
En utilisant cette commande which node
, j'ai trouvé le chemin, mais pour faciliter le travail, vous pouvez exécuter cette commande.
nodepath=$(which node); Sudo ln -s $nodepath /usr/bin/node
la commande ci-dessus obtiendra l'emplacement de votre nœud et créera un lien pour vous.
Pour mon cas, le lien n'a pas PAS n'a pas fonctionné comme suit
ln -s/usr/bin/nodejs/usr/bin/node
Mais vous pouvez ouvrir/usr/local/bin/lessc en tant que root et modifier la première ligne de node à nodejs.
- #!/usr/bin/env noeud
+ #!/usr/bin/env nodejs
Il suffit de renommer la commande ou le nom de fichier ln -s /usr/bin/nodejs /usr/bin/node
par cette commande.
Pour moi, la réponse acceptée ne fonctionnait pas encore. J'ai commencé comme suggéré ici:
ln -s /usr/bin/nodejs /usr/bin/node
Après avoir fait cela, j'obtenais l'erreur suivante:
/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require ('update-notifier') ({pkg}) ^^^
SyntaxError: Déclarations couvertes par des blocs (let, const, fonction, classe) pas encore supporté en dehors du mode strict at exports.runInThisContext (vm.js: 53: 16) à Module._compile (module.js: 374: 25) à Object.Module._extensions..js (module.js: 417: 10) sur Module.load (module.js: 344: 32) à Function.Module._load (module.js: 301: 12) à Function.Module.runMain (module.js: 442: 10) au démarrage (node.js: 136: 18) à node.js: 966: 3
La solution consistait à télécharger la version la plus récente du noeud à partir de https://nodejs.org/fr/download/ .
Puis j'ai fait:
Sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1
La mise à jour a finalement été effectuée avec succès: npm -v
est passé de 3.2.1 à 6.4.1.