Не удается установить NodeJs:/usr/bin / env: node: нет такого файла или каталога

Я пытаюсь установить nodeJs в мой Ubuntu 14.04, чтобы использовать GruntJs.

Я читал про Ubuntu по-другому сделать это (вопросы?), так это то, что я сделал, чтобы установить его:

sudo apt-get install npm

sudo npm install -g grunt-cli

набрав grunt после этого у меня есть ошибка:

/usr/bin/env: node: No such file or directory

Итак, я пробовал:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

и пытаясь снова, и все еще получая ошибку, я пробовал:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

у меня есть сообщение:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

Я попытался очистить на всякий случай:

sudo apt-get autoremove

но нет, ошибка все еще есть: когда я печатаю grunt, я все еще получаю /usr/bin/env: node: No such file or directory

что делать?

15 ответов


нашел ответ. На всякий случай, если это кому-то поможет, я размещаю его здесь:

выполнение символической ссылки решает проблему:ln -s /usr/bin/nodejs /usr/bin/node (Моя благодарность и +1 голос к bodokaiser).

примечание: Я думаю, что этот пост не является точным дубликатом, потому что этот пост был несколько вопросом browserify.


проблема не в версии node. Вместо этого, это способ NodeJS устанавливается по умолчанию в Ubuntu. При запуске приложения узла в Ubuntu вы должны запустить nodejs somethign.js вместо node something.js

таким образом, имя приложения, называемое в терминале nodejs, а не node. Вот почему существует необходимость в символической ссылке, чтобы просто переслать все команды, полученные как node до nodejs.

ln -s /usr/bin/nodejs /usr/bin/node

Я думаю, вы должны обновить последнюю версию узла

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Если вы можете получить доступ к узлу на терминале ubuntu с помощью команды nodejs, то эта проблема может быть просто решена с помощью - создание символической ссылки nodejs и узла с помощью

ln -s /usr/bin/nodejs /usr/bin/node

и это может решить проблему


в моем случае, установка nodejs-legacy решается вопрос.

sudo apt-get install nodejs-legacy

просто делать

$ sudo apt-get install nodejs-legacy

и он начнет работать.


Я обнаружил, что это часто ошибка неправильного имени, если вы устанавливаете из диспетчера пакетов, вы можете называть bin nodejs, поэтому вам просто нужно символически связать его так

ln -s /usr/bin/nodejs /usr/bin/node

Если у вас уже установлен nodejs (проверьте с помощью which nodejs) и не хотите установить другой пакет, вы можете, как root:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

когда я использовал gulp, я получил эту ошибку.

~$ gulp

/ usr/bin / env: ‘node’: нет такого файла или каталога

этот был снят, выполнив следующую команду, вы должны иметь в виду, что каталог /usr/bin имеет все разрешения.

~$ ln -s /usr/bin/nodejs /usr/bin/node

это работает для меня..


пока ln -s Это очевидное самое простое исправление, часть объяснения:

из-за конфликта с другим пакетом, исполняемый от Репозитории Ubuntu называются nodejs вместо node. Имейте это в виду, как вы используете программное обеспечение.

этот совет появляется при установке sudo apt-get install nodejs.

Итак, какой-то другой известный инструмент (я не знаю, что он делает. Хотя он известен репозиториям ubuntu, он не установлен по умолчанию в 16.04) занимает это пространство имен.

было бы неплохо, если бы Ubuntu предложил совет, как исправить это "чисто", если не делать вручную, что в противном случае пакет будет делать. (столкновение остается столкновением... если+когда это произойдет)


есть два решения для этого:

a) установите переменную PATH для включения"/usr/local / bin"

export PATH="$PATH:/usr/local/bin"

b) создайте символическую ссылку на "/ usr / bin", которая уже находится на вашем пути

ln -s /usr/bin/nodejs /usr/bin/node

надеюсь, это поможет.


sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>

для моего случая ссылка сделал не работа как следовать

ln-s /usr/bin/nodejs /usr/bin/node

но вы можете открыть /usr/local/bin / lessc как root и изменить первую строку с node на nodejs.

-#!/usr/bin / env узел

+#!/ usr/bin / env nodejs


просто переименуйте команду или имя файла ln -s /usr/bin/nodejs /usr/bin/node командой


в зависимости от того, как вы установили свой узел, большую часть времени он может быть не в /usr/bin/, в моем случае я использовал nvm для установки, чтобы мой узел был ./НВМ/версии.

используя эту команду which node я узнал путь, но чтобы облегчить работу, вы можете запустить эту команду.

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

вышеуказанная команда получит местоположение вашего узла и создаст для вас ссылку.