nodejs против узла в Ubuntu 12.04

Я установил nodejs на Ubuntu из инструкций, приведенных здесь

Когда я пишу node --version в терминале вижу это:
-bash: /usr/sbin/node: No such file or directory

Я вижу узел в /usr/sbin/ каталог, хотя.

Пишу npm --version шоу 1.3.5
Пишу nodejs --version шоу v0.10.15

Кроме того, я вижу узел в /usr/bin/ каталог.

Итак, как я могу получить node за работой?

Также, если я использую zsh вместо bash, то node команда работает.

22 ответа

Решение

Вам нужно вручную создать символическую ссылку /usr/bin/node, Ярлык для bash-совместимых оболочек:

sudo ln -s `which nodejs` /usr/bin/node

Или, если вы используете нестандартные оболочки, просто жестко закодируйте путь, который вы найдете с which nodejs:

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

Позже редактировать

Я нашел это объяснение в ссылке, которую вы разместили

Существует конфликт имен с пакетом узла (программа любительского пакетного радиоузла), и двоичный файл nodejs был переименован из узла в nodejs. Вам нужно будет использовать символическую ссылку /usr/bin/node в /usr/bin/nodejs, или вы можете удалить программу любительского пакетного радиоузла, чтобы избежать этого конфликта.

Позже позже редактировать

Прошло много времени с тех пор, как я ответил на это. Хотя решение, которое я разместил здесь, сработало для меня несколько раз, пользователи сообщили о нескольких других решениях в комментариях:

От @user229115

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

От AskUbuntu (пользователь leftium)

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

Я думаю, что это так:

Возможности обновления sudo --install /usr/bin/ узел узла /usr/bin/nodejs 10

Использование альтернатив Debian.

Видимо, решение отличается в разных версиях Ubuntu. Следующее работает для меня на Ubuntu 13.10:

sudo apt-get install nodejs-legacy

НТН

Изменить: правило:

Если вы установили nodejs но не хватает /usr/bin/node двоичный, затем также установить nodejs-legacy , Это просто создает недостающую мягкую ссылку.

Согласно моим тестам, Ubuntu 17.10 и выше уже имеют совместимость-softlink /usr/bin/node на месте после nodejs установлен, так nodejs-legacy отсутствует в этих выпусках, так как больше не нужен.

У меня такая же проблема в Ubuntu 14.04.

Я установил "nodejs", и он работает, но только если я использую команду "nodejs". Если я пытаюсь использовать "узел", ничего не происходит.

Я исправил эту проблему следующим образом:

  1. Установите nodejs-legacy

    sudo apt-get установить nodejs-legacy

После этого, когда я набираю "узел" в командной строке, я получаю сообщение об ошибке "/ usr / sbin / node: нет такого файла или каталога"

  1. Во-вторых, то, что я сделал, это символическая ссылка на "nodejs":

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

Диспетчер версий узлов (nvm)

Если вы хотите установить несколько версий nodejs и легко переключаться между ними, я бы предложил использовать Node Version Manger. Это также решает проблему именования (node против nodejs)

Все довольно просто:

Установите версию nodejs:

$ nvm install 4.4

Теперь у вас есть nodejs 4.4 в дополнение к уже установленной версии, и вы можете просто использовать node Команда для достижения недавно установленной версии:

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

Вы можете установить больше версий nodejs и легко переключаться между ними:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

Это случилось и со мной.

node -v => 0.10.2
nodejs -v => 5.5.0

Проблема заключалась в том, что я установил узел из источника некоторое время назад. Бег

which node

всегда указывал на эту локальную установку. Также,

echo NODE_PATH

указал на локальную установку.

удаление каталога с исходной установкой не помогло. Это просто сломало команду узла. В конце концов, сброс переменной среды NODE_PATH и очистка, а затем переустановка nodejs сделали свое дело.

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

После этого,

node -v => 5.5.0

и npm install начал работать для пакетов в зависимости от Node => 5.0.

Я новичок во всем этом, но для меня сработал простой псевдоним:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

по крайней мере, для запуска вещей прямо в bash и выполнения файлов.js.

Как насчет использования официальных инструкций с сайта nodejs:

Для v7:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Для v6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Для v4:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Я тестировал их из Windows bash (через подсистему для Linux - 14.04) и raspbian (на основе ARM Debian). Бег sudo apt-get install -y nodejs без первого запуска установочного скрипта вы получите узел 0.10.

Если вы планируете установить собственные модули npm, требующие сборки, также запустите:

sudo apt install -y build-essential

Примечание: это рекомендуемый путь для любого дистрибутива на основе Debian для всех архитектур.

Поздний ответ, но для актуальной информации...

Если вы устанавливаете node.js с помощью метода рекомендуемого из readme по установке github для узла, он предлагает следовать инструкциям, приведенным в статье блога nodeource, а не устанавливать из устаревшего репозитория apt-get, узел.js должен работать с использованием node команда, а также nodejs команда, без необходимости создавать новую символическую ссылку.

Этот метод из статьи:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

Обратите внимание, что это для v0.12, которая, скорее всего, устареет в недалеком будущем.

Кроме того, если вы находитесь за корпоративным прокси (например, я), вам нужно добавить опцию -E в команду sudo, чтобы сохранить переменные env, необходимые для прокси:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -

Добавление к правильному ответу @randunel (пока не могу комментировать SO):

Мне также пришлось использовать символическую ссылку / usr / local / bin / node на /usr/bin/nodejs.

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

Очевидно, это переопределяло команду / usr / bin / node.

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

Это работает для меня:

alias node=nodejs

После следования инструкциям в этой ссылке.

Если вы работаете с экземпляром AWS EC2, на котором запущен экземпляр Ubuntu (протестирован на Ubuntu 16.x), то эти шаги могут работать для вас:

 sudo apt-get update
    sudo apt-get --purge удалить узел -y
    sudo apt-get --purge удалить nodejs -y
    sudo apt-get --purge удалить legacy-node -y
    sudo rm  /usr/bin/node
    curl -sL https://deb.nodesource.com/setup_6.x | Судо Баш -
    sudo apt-get установить nodejs -y
    узел -v

Если все правильно, последняя команда должна иметь вывод, например: v6.xx

Если нет, то выполните следующее:

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

Надеюсь, это поможет. Это помогло мне волшебным образом (хе-хе).

У меня была такая же проблема, символическая ссылка помогла мне: sudo ln -s /usr/bin/nodejs /usr/bin/node после этого sudo npm install -g phantomjs-prebuilt

прошло гладко

Лучший способ установить nodejs - через NVM (Node Version Manager)

Удалить предыдущие версии:

 $ sudo apt-get purge node 
 $ sudo apt autoremove 

Также удалите все node_modules $ sudo rm -rf node_modules в каталоге, содержащем эту папку.

Node & Nodejs технически одно и то же. Просто название изменилось.

Сначала установите или обновите nvm

бежать от имени root

 $ sudo su 

затем

 $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | удар 

ИЛИ ЖЕ

 $ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | удар 

Проверьте NVM к пути

 $ source ~ /.profile 
 $ nvm ls-remote 

если вы получили ошибку в отношении списка, установите git.

 $ sudo apt-get install git 

Перезапустить:

 $ nvm ls-remote 
ИЛИ ЖЕ
 $ sudo nvm ls-remote 

 $ nvm установить нужную вам версию 

Проверка версии

 # node --version 
 NVM использовать версию, которую вы требуете 

ИНФОРМАЦИОННЫЙ КУРС:

 https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps 

Вы можете выполнить эту команду для включения nodejs:

scl enable rh-nodejs8 bash

Примечание. Проверьте версию своего узла.

Источник: https://developers.redhat.com/products/softwarecollections/hello-world/

Я создал символическую ссылку, но она все еще не работала.

Я забыл перезапустить свой терминал (соединение с замазкой). После того, как у меня это работало без символической ссылки:)

https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

➜  ~ which node
/usr/local/bin/node
➜  ~ node --version
v10.11.0
➜  ~ which npm
/usr/local/bin/npm
➜  ~ npm --version
6.4.1

Просто используйте NVM (Node Version Manager) - https://github.com/creationix/nvm

Это стало стандартом для управления Node.js.

Когда вам нужна новая версия:

nvm install NEW_VER
nvm use XXX

Если что-то пойдет не так, вы всегда можете вернуться с

nvm use OLD_VER

Будет полезно для начинающих

Хотя, вы получили ответ, просто хотел отметить, что node Команда (без каких-либо параметров) запустит узел в режиме REPL read-eval-print-loop для выполнения необработанного кода JavaScript.

Еще один способ использования node команда, предоставляя ему js файл в качестве параметра. Вот как мы в основном используем это.

Не обязательно удалять существующие node и nodejs, но нужно сделать альтернативную установку последней версии 7.x nodejs.

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

в моем случае я просто использовал это

      sudo npm cache clean -f

sudo npm install -g n

sudo n stable

Этот установит стабильную версию

Тогда просто сделайте это символической ссылкой

      sudo ln -s  /usr/local/bin/node
  • Сначала установите рекомендуемую версию
  • Попробуйте в cmdnode -v
  • Если команда работает, попробуйте ее в команде vs
  • Если он все еще не работает, «проверьте путь» в переменной среды;
  • Если env установлен, перепроверьте, работает он или нет;
  • Затем просто выключите компьютер и перезагрузите его.
  • Тогда попробуй "надеюсь, получится"

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

Другие вопросы по тегам