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