nodejs vs node на 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 работает.

20 337

20 ответов:

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

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

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

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

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

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

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

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

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

Из @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 update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

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

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

sudo apt-get install nodejs-legacy

HTH

Правка: эмпирическое правило:

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

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

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

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

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

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

    sudo apt-get install nodejs-legacy

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

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

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

Это случилось со мной также.

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 на всех архитектурах.

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

Если вы хотите установить несколько версий nodejs и легко переключаться между ними, я бы предложил использовать Node Version Manger. Он также решает проблему именования (node vs 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)

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

Я также должен был символически связать /usr / local/bin / node с /usr/bin/nodejs.

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

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

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

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

Если вы устанавливаете узел.js, используя метод recommend от узла установки GitHub readme , он предлагает следовать инструкциям на статье блога nodesource, а не устанавливать из устаревшего apt-get repo, узла.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 vars, необходимые для прокси:

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

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

alias node=nodejs

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

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

    sudo apt-get update
    sudo apt-get --purge remove node -y
    sudo apt-get --purge remove nodejs -y
    sudo apt-get --purge remove legacy-node -y
    sudo rm  /usr/bin/node
    curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
    sudo apt-get install nodejs -y
    node -v

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

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

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

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

У меня была та же проблема, символическая ссылка помогла мне: судо в /usr/Бен/nodejs /usr/Бен/узел после этого 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 | bash

Или

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash

Проверьте nvm на путь

$ source ~/.profile
$ nvm ls-remote

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

$ sudo apt-get install git

Повторный запуск:

$ nvm ls-remote
или
$ sudo nvm ls-remote
$ nvm install version-you-require 

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

# node --version
nvm use version-you-require

ИНФОРМАЦИОННАЯ ЛЮБЕЗНОСТЬ:

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

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

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

Будет полезно для абсолютных новичков

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

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

Необязательно удалять существующие узлы и nodejs, но вместо этого необходимо установить последнюю версию 7.х nodejs.

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

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

Он стал стандартом для управления узлом.JS.

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

nvm install NEW_VER
nvm use XXX

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

nvm use OLD_VER

Вы можете выполнить эту команду, чтобы включить 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