Конфликты 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? [ 1115]

34
задан 3 January 2013 в 18:30

7 ответов

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

sudo apt-get install nodejs-legacy

. Это правильно предоставило мне / usr / bin / node , так что e. г. Можно использовать nodemon .

15
ответ дан 3 January 2013 в 18:30

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

alias node="nodejs"

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

11
ответ дан 3 January 2013 в 18:30

обновление: измененные инструкции ниже для использования пакета nodejs-legacy . ( дополнительная информация о node-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 .

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

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

36
ответ дан 3 January 2013 в 18:30

Думаю, это оно:

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

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

7
ответ дан 3 January 2013 в 18:30

На ubuntu 14.04 у меня была такая же проблема с узлом. Не работал "узел", а работал "узел". Я только что сделал

sudo apt-get remove node

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

1
ответ дан 3 January 2013 в 18:30
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

ref. http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/

0
ответ дан 3 January 2013 в 18:30

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

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

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
1
ответ дан 3 January 2013 в 18:30

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

Похожие вопросы: