web-dev-qa-db-fra.com

Impossible d'installer NodeJs:/usr/bin/env: noeud: aucun fichier ou répertoire de ce type

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?

280
Rosamunda

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.

771
Rosamunda

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
110
Muhammad bin Yusrat

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
45
vanlan228

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

28
Hiro

Dans mon cas, installation de nodejs-legacy } a résolu le problème.

Sudo apt-get install nodejs-legacy
24
Suleyman Arslan

Il suffit de faire

$ Sudo apt-get install nodejs-legacy

Et ça va commencer à fonctionner.

10

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
9
Ahmad Awais

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
7
Tom Hale

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 ..

6
Naveen Gupta

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.

4
Pavel

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)

4
Frank Nocke
Sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
2
KARTHIKEYAN.A

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
2
Anandhu Raj

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.

1
akisoft

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

1
Tanvir Ahmad

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.

0
Blackbam