Не удается установить 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 274

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

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

$ 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 и изменить первую строку с узла на 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

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