Невозможно установить 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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 6

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

$ sudo apt-get install nodejs-legacy

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

Ответ 7

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

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

Ответ 8

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

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

Ответ 9

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

~$ gulp

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

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

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

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

Ответ 10

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

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

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

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

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

Ответ 11

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

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

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

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

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

Я надеюсь, что это помогает.

Ответ 12

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

Ответ 13

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

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

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

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

Ответ 14

Для моего случая ссылка не работала следующим образом

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

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

- #!/usr/bin/env node

+ #!/usr/bin/env nodejs

Ответ 15

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

Ответ 16

Для меня принятый ответ еще не работал. Я начал как предложено здесь:

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

После этого я получил следующую ошибку:

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require ('update-notifier') ({pkg}) ^^^

SyntaxError: Декларации блочной области (let, const, function, class) еще не поддерживаются вне строгого режима в export.runInThisContext(vm.js: 53: 16) в Module._compile (module.js: 374: 25) в Object. Module._extensions..js(module.js: 417: 10) в Module.load(module.js: 344: 32) в Function.Module._load (module.js: 301:12) в Function.Module.runMain( module.js: 442: 10) при запуске (node.js: 136: 18) в node.js: 966: 3

Решением было загрузить самую последнюю версию узла с https://nodejs.org/en/download/.

Тогда я сделал:

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

Теперь обновление npm -v успешно: npm -v изменен с 3.2.1 на 6.4.1.

Ответ 17

Следуйте этим командам, чтобы решить проблему.

В терминале:

  1. Очистите весь кэш NPM:

    $ sudo npm cache clean -f
    
  2. sudo npm install -g n
    
  3. Установите последнюю стабильную версию Node.js:

    sudo n stable
    

Теперь установлена последняя версия Node.js. Проверьте версию, используя:

node -v