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

229

Я пытаюсь установить 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

Что мне делать?

Теги:
gruntjs

11 ответов

712
Лучший ответ

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

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

ПРИМЕЧАНИЕ. Я думаю, что этот пост не является точным дубликатом, потому что этот пост был несколько вопросом браузера.

  • 94
    sudo apt-get install nodejs-legacy создает эту ссылку, см. описание на packages.debian.org/sid/nodejs-legacy
  • 0
    ln -s / usr / bin / nodejs / usr / bin / node ln - ссылка, а -s - мягкая ссылка.
Показать ещё 14 комментариев
85

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

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

ln -s /usr/bin/nodejs /usr/bin/node
  • 6
    Вам нужно будет запустить эту команду с помощью sudo, если вы получаете сообщение об ошибке «ln: не удалось создать символическую ссылку« / usr / bin / node »»
  • 0
    ln -s / usr / bin / nodejs / usr / bin / node
39

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

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
  • 1
    Просто совет; сделайте отступ для ваших строк кода на 4 пробела;) также, n - это не команда, связанная с Node.JS.
  • 3
    @Qix, что делает команда n ?
Показать ещё 3 комментария
23

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

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

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

  • 0
    Спасибо, этот решил проблему для меня.
17

В моем случае установка nodejs-legacy решила проблему.

sudo apt-get install nodejs-legacy
  • 0
    Большое спасибо :)
  • 0
    это должен быть принятый ответ!
6

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

ln -s /usr/bin/nodejs /usr/bin/node
  • 0
    Вместо того, чтобы добавлять отрицательный отзыв, дайте мне знать здесь, в комментарии, что не так, чтобы я мог помочь вам в этом. Поскольку нет ничего плохого в создании символической ссылки, особенно если она помогает вам лучше управлять вещами.
  • 1
    Я для себя предпочитаю такой подход. Чисто.
5

Просто сделай

$ sudo apt-get install nodejs-legacy

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

5

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

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
  • 0
    Это правильный путь Debian.
4

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

~$ gulp

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

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

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

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

1

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

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

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

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

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

  • 1
    @ Том-Хейл - это способ Ubuntu для этого. Вы используете альтернативы, чтобы указать правильный узел
0
sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
  • 3
    Возможно, вы захотите объяснить действие этой команды.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню