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

Что я должен делать?

Эта проблема не возникает в Ubuntu 20.04. sudo apt-file find /usr/bin/node списки nodejs: /usr/bin/node. То есть при установке пакета nodejs устанавливается ожидаемая node исполняемая программа.   —  person Rosamunda    schedule 12.10.2020

См. также:  Rails 3 Application / User Settings - лучшая практика?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 17
  1. Rosamunda

    Создание символической ссылки решает проблему:

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

    (Моя благодарность и +1 голос за ответ bodokaiser).

    sudo apt-get install nodejs-legacy также создает эту ссылку, см. Описание на странице packages.debian.org/sid/nodejs-legacy</ а> person Rosamunda; 02.05.2015

    Символическая ссылка решила проблему и сэкономила много времени на разработку. Спасибо! person Rosamunda; 22.10.2015

    Это исправление — серьезная палочка-выручалочка. Особенно, если вы следуете руководству по исправлению разрешений здесь

    docs.npmjs.com/getting -started / fixing-npm-permissions person Rosamunda; 10.03.2016

    Спасибо! Это спасло меня после полудня, когда я пытался настроить приложение узла в облаке Google Linux. person Rosamunda; 13.08.2016

    спасибо, это тоже помогло мне решить мою проблему с докером github .com / юссан / докер-nodejs-шаблон / дерево / мастер / person Rosamunda; 24.01.2017

    Я добавил его в /usr/local/bin, просто чтобы запомнить, что это настраиваемая символическая ссылка. person Rosamunda; 22.02.2017

    когда я запускаю на Mac — sudo apt-get install nodejs-legacy он говорит sudo: apt-get: command not found person Rosamunda; 19.04.2017

    Сработало у меня! Спасибо person Rosamunda; 27.08.2017

    Дополнительная информация о конфликте имен (разрешение): lists.debian. org / debian-devel-announce / 2012/07 / msg00002.html person Rosamunda; 24.11.2017

    это было ln -s /usr/local/bin/node /usr/local/bin/nodejs для меня … просто побежал which node, чтобы найти нужное место. person Rosamunda; 31.01.2018

    ln: / usr / bin / node: операция запрещена person Rosamunda; 09.07.2018

    @rd_ Очевидно, вы редактируете каталог / usr / bin. Только root может это сделать. person Rosamunda; 10.08.2018

    Вы должны использовать which node, чтобы получить правильный путь к вашему узлу. Таким образом, команда будет ln -s "$(which node)" /usr/bin/node person Rosamunda; 05.04.2019

    Это сэкономило мне массу времени. Я изо всех сил пытался отладить экспресс-приложение с помощью babel в vscode. Спасибо. person Rosamunda; 01.11.2019

    ln: / usr / bin / node: Операция запрещена даже с sudo. OSX. person Rosamunda; 04.06.2020

    Здесь не работает, потому что /usr/bin/npm: No such file or directory хотя Package 1:npm-3.10.10-1.6.17.1.1.el7.x86_64 already installed person Rosamunda; 14.09.2020

  2. Rosamunda

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

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

    Просто чаевые; сделайте отступ в строках кода на 4 пробела;) кроме того, n не является командой, связанной с Node.JS. person Rosamunda; 12.10.2014

    @David на основе описания пакета на странице NPM: интерактивное управление всеми версиями вашего узла person Rosamunda; 07.04.2016

    Решил проблему за меня person Rosamunda; 18.10.2016

    Я скопировал проект laravel с машины windows на ubuntu 16.04, и у laravel mix была проблема с npm run watch И это решение сработало для меня, и теперь проблема исчезла person Rosamunda; 07.09.2019

  3. Rosamunda

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

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

    sudo ln -s /usr/bin/nodejs /usr/bin/node
    
  4. Rosamunda

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

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

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

  5. Rosamunda

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

    sudo apt-get install nodejs-legacy
    
  6. Rosamunda

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

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

    Вместо того, чтобы добавлять отрицательный отзыв, дайте мне знать здесь, в комментарии, что не так, и я могу помочь вам с этим. Поскольку нет ничего плохого в создании символической ссылки, особенно если это помогает вам лучше управлять вещами. person Rosamunda; 16.09.2016

    Я лично предпочитаю этот подход. Чисто. person Rosamunda; 25.10.2016

  7. Rosamunda

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

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

    Это правильный способ Debian. person Rosamunda; 22.06.2017

  8. Rosamunda

    Хотя ln -s — очевидное простейшее решение, небольшое объяснение:

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

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

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

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

    Ответ @ tom-hale — это способ Ubuntu для этого. Вы используете альтернативы, чтобы указать правильный узел person Rosamunda; 14.12.2016

  9. Rosamunda

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

    ~$ gulp
    

    / usr / bin / env: «узел»: нет такого файла или каталога.

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

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

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

    У меня была такая же проблема, но решение не сработало. Я проверяю, установлен ли узел или нет, с помощью команды node -v и обнаружил, что он отсутствует. Должно быть, это потому, что я недавно обновился с 10.04 до ubuntu 20.04. person Rosamunda; 13.10.2020

  10. Rosamunda

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

    $ sudo apt-get install nodejs-legacy
    

    И он заработает.

  11. Rosamunda

    В моем случае ссылка не работает , как показано ниже

    ln -s / usr / bin / nodejs / usr / bin / узел

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

    — #! / usr / bin / env узел

    + #! / usr / bin / env nodejs

  12. Rosamunda

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

  13. Rosamunda

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

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

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

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

  14. Rosamunda

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

    а) Установите переменную PATH, чтобы включить «/ usr / local / bin»

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

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

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

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

  15. Rosamunda

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

    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) еще не поддерживаются вне строгого режима в exports.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 изменился с 3.2.1 на 6.4.1

  16. Rosamunda

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

    В терминале:

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

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

      sudo n stable
      

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

    node -v
    
  17. Rosamunda

    если вы используете nvm диспетчер версий узлов, используйте эту команду для создания символической ссылки:

    sudo ln -s "$(which node)" /usr/bin/node
    sudo ln -s "$(which npm)" /usr/bin/npm
    
    • Первая команда создает символическую ссылку для node
    • Вторая команда создает символическую ссылку для npm

    Я предпочитаю /usr/local/bin/node вместо person Rosamunda; 09.09.2020

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: