Не удается установить 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
Я обнаружил, что это часто ошибка неправильного имени, если вы устанавливаете из диспетчера пакетов, вы можете называть 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
надеюсь, это поможет.
для моего случая ссылка сделал не работа как следовать
ln-s /usr/bin/nodejs /usr/bin/node
но вы можете открыть /usr/local/bin / lessc как root и изменить первую строку с node на nodejs.
-#!/usr/bin / env узел
+#!/ usr/bin / env nodejs
в зависимости от того, как вы установили свой узел, большую часть времени он может быть не в /usr/bin/, в моем случае я использовал nvm для установки, чтобы мой узел был ./НВМ/версии.
используя эту команду which node
я узнал путь, но чтобы облегчить работу, вы можете запустить эту команду.
nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node
вышеуказанная команда получит местоположение вашего узла и создаст для вас ссылку.