Impossible d'installer NodeJs: / usr / bin/env: node: pas de tel fichier ou répertoire
j'essaie d'installer nodeJs dans mon Ubuntu 14.04 afin d'utiliser GruntJs.
j'ai lu à propos de Ubuntu manière différente de le faire ( des questions? ), donc c'est ce que j'ai fait pour l'installer:
sudo apt-get install npm
sudo npm install -g grunt-cli
tapant grunt après que j'ai eu l'erreur:
/usr/bin/env: node: No such file or directory
donc, 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 encore en obtenant 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 eu 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 juste au cas où:
sudo apt-get autoremove
mais non, l'erreur est toujours là: quand je tape grunt j'obtiens toujours /usr/bin/env: node: No such file or directory
Que dois-je faire?
15 réponses
a trouvé la réponse. Juste au cas où il aide quelqu'un, je le poste ici:
en Faisant un lien symbolique résout le problème: ln -s /usr/bin/nodejs /usr/bin/node
(Mes remerciements et +1 vote pour bodokaiser ).
REMARQUE: je pense que ce post n'est pas une copie exacte, parce que le post était un peu une browserify question.
Le problème n'est pas avec la version de nœud. Au lieu de cela, C'est la façon dont NodeJS est installé par défaut dans Ubuntu. Lors de l'exécution d'une application de noeud dans Ubuntu vous devez exécuter nodejs somethign.js
au lieu de node something.js
donc le nom de l'application appelé dans le terminal est nodejs
et non node
. C'est pourquoi il est nécessaire d'avoir un lien symbolique pour simplement transmettre toutes les commandes reçues comme node
à nodejs
.
ln -s /usr/bin/nodejs /usr/bin/node
je pense que vous devriez mettre à jour la dernière version de noeud
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
si vous êtes en mesure d'accéder au noeud sur le terminal ubuntu en utilisant la commande nodejs,alors ce problème peut être simplement résolu en utilisant - création d'un lien symbolique de nodejs et de noeud en utilisant
ln -s /usr/bin/nodejs /usr/bin/node
et cela peut résoudre le problème
dans mon cas, installation nodejs-legacy résolu le problème.
sudo apt-get install nodejs-legacy
Just do
$ sudo apt-get install nodejs-legacy
et il va commencer à fonctionner.
j'ai trouvé qu'il s'agit souvent d'une erreur de nom erroné, si vous installez à partir d'un gestionnaire de paquets, votre bin peut être appelé nodejs, donc vous avez juste besoin de symlink comme ça
ln -s /usr/bin/nodejs /usr/bin/node
si vous avez déjà nodejs installé (vérifiez avec which nodejs
) et 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 gulfp j'ai eu cette erreur.
~$ gulp
/usr/bin/env: ‘noeud’: Aucun fichier ou répertoire de
ceci a été supprimé en exécutant la commande suivante vous devez garder à l'esprit que le répertoire /usr/bin a toutes les permissions.
~$ ln -s /usr/bin/nodejs /usr/bin/node
ça me va..
alors que ln -s
est la solution la plus facile, un morceau d'explication:
en raison d'un conflit avec un autre paquet, l'exécutable du Ubuntu repositories s'appelle nodejs au lieu de node. Gardez cela à l' faites attention lorsque vous utilisez un logiciel.
ce conseil apparaît lors de l'installation de sudo apt-get install nodejs
.
donc un autre outil connu (Je ne sais pas ce qu'il fait. Tout en étant connu pour ubuntu dépôts, il n'est pas installé par défaut dans 16.04) occupe cet espace de noms.
aurait été agréable, si Ubuntu avait offert un conseil sur la façon de corriger ce "propre", si ce n'est en faisant à la main ce que sinon le paquet ferait. (une collision demeure une collision... si+quand il allait se produire)
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éer un lien symbolique vers"/usr / bin "qui est déjà sur votre chemin
ln -s /usr/bin/nodejs /usr/bin/node
j'espère que ça aidera.
sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
Pour mon cas le lien a PAS travail ainsi
ln - s / usr / bin/nodejs /usr/bin / node
mais vous pouvez ouvrir/usr/local/bin / lessc comme root, et changer la première ligne du noeud à nodejs.
-#!/usr/bin/env nœud
+#!/usr/bin / env nodejs
vient de renommer la commande ou le nom de fichier ln -s /usr/bin/nodejs /usr/bin/node
par cette commande
selon la façon dont vous avez installé votre noeud, la plupart du temps il pourrait ne pas être dans /usr/bin/, dans mon propre cas, il était que j'ai utilisé nvm pour installer donc mon noeud était 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 va obtenir l'emplacement de votre noeud et créer un lien pour vous.