Конфликты 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
, Вот некоторые виды поведения, которые я наблюдал:
- Обе машины возвращаются
/usr/bin/node
в ответ наwhich node
команда. Однако такого файла нет на компьютере B. - Выдача команды
node
работает на машине A, а не B. На B, я должен использоватьnodejs
вместо. - На 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/