Невозможно установить 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
и это может решить проблему
Ответ 5
В моем случае установка nodejs-legacy решила проблему.
sudo apt-get install nodejs-legacy
Ответ 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
Следуйте этим командам, чтобы решить проблему.
В терминале:
-
Очистите весь кэш NPM:
$ sudo npm cache clean -f
-
sudo npm install -g n
-
Установите последнюю стабильную версию Node.js:
sudo n stable
Теперь установлена последняя версия Node.js. Проверьте версию, используя:
node -v