Конфликты node.js: /sbin/node vs /usr/bin/node

У меня есть две машины Ubuntu 12.10: машина A - это VMWare VM, а машина B - и старый ноутбук Acer. На обеих машинах я установил узел, используя apt-get. Однако машина A устанавливает основной двоичный файл как /usr/bin/node и машина B как /usr/bin/nodejs, Вот некоторые виды поведения, которые я наблюдал:

  1. Обе машины возвращаются /usr/bin/node в ответ на which node команда. Однако такого файла нет на компьютере B.
  2. Выдача команды node работает на машине A, а не B. На B, я должен использовать nodejs вместо.
  3. На B есть двоичный файл с именем /sbin/node, у A его нет.

Такое поведение вызывает проблему несогласованности при разработке на обеих машинах. На данный момент я работал, переименовывая двоичные файлы на B следующим образом:

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

Есть ли способ действительно исправить это, так что узел будет установлен как /usr/bin/node вместо /usr/bin/nodejs?

7 ответов

Решение

На Ubuntu 13.10 все ответы выше не работали для меня. Наконец-то это сработало, когда я установил nodejs-legacy

sudo apt-get install nodejs-legacy

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

обновление: измененные инструкции ниже, чтобы использовать nodejs-legacy пакет.( больше информации об узле-наследии)

Попробуйте полностью удалить конфликтующий узел пакета:

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

sudo apt-get install nodejs-legacy

# Confirm it worked
node --version       # v0.10.13
ls -la `which node`  # ... /usr/bin/node -> /etc/alternatives/node

Это случилось со мной, когда я невольно установил non-node.js node пакет. Хотя я сделал apt-get remove node перед установкой правильной nodejs пакет, я думаю, --purge аргумент обязателен.

Справочная информация:

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

К сожалению для меня, создание символической ссылки не работает. Что работало для меня, хотя создавал псевдоним. В ~/.bashrc или же ~/.bash_aliases (если ~/.bashrc загружает этот файл), просто добавьте следующую строку:

alias node="nodejs"

Перезапустите сеанс bash, набрав bash в консоль и ваш псевдоним теперь будет работать.

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

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

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

На Ubuntu 14.04 у меня была такая же проблема с узлом. У меня был не рабочий "узел", а работающий "узел". я только что сделал

sudo apt-get remove node

и сразу после этого, узел работал, и узел js тоже работает:) Я новичок в Linux, и это для меня ошибкой. Однако Бауэр работает!

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

Если вы устанавливаете 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

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

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

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
sudo getconf LONG_BIT
sudo uname -p
  • Подтвердите архитектуру вашего процессора
  • Найдите ваш дистрибутив node.js в дереве каталогов по адресу https://nodejs.org/dist/ (примечание: различные версии различных дистрибутивов node.js для разных архитектур ЦП)

Мой рабочий стол в настоящее время Ubuntu 15.10 AMD64, поэтому я буду использовать следующий URL в моем примере установки (опять же, дистрибутив различается):

sudo wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz

Затем измените каталог на ваш каталог загрузки:

sudo cd /home/name/Downloads

Из вашего каталога загрузки выполните следующее:

sudo tar -C /usr/local --strip-components 1 -xzf node-v5.0.0-linux-x64.tar.gz

Подтвердите установку вашего node.js следующим образом:

sudo ls -l /usr/local/bin/node
sudo ls -l /usr/local/bin/npm

ссылка http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/

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