В чем разница между командой node vs nodejs в терминале?
У меня есть untarred node.js из tar файла, указанного на nodejs.org, но когда я пытаюсь выполнить мою js-программу с помощью команды node, ничего не происходит, но, с другой стороны, запуск команд nodejs выполняется.
Итак, мой вопрос заключается в том, что разница между командой node и командой nodejs, и будет ли она влиять на мои программы, поскольку я не создавалась из исходного кода. И это причина этого расхождения.
Ответы
Ответ 1
Это сильно зависит от многих факторов. В основном, это зависит от того, что node
и nodejs
в вашей оболочке на самом деле. Вы можете проверить это, используя type node
/type nodejs
и/или which node
/which nodejs
(или, возможно, whereis
). Это также зависит от ОС и оболочки.
Я предполагаю, что which -a node
даст /usr/sbin/node
, который не является исполняемым nodejs, и поэтому он не выполняет ваш код node. В моей системе это:
/usr/bin/node -> /etc/alternatives/node -> /usr/bin/nodejs
то есть. node
- это просто символическая ссылка на nodejs
, которая является исполняемым.
Вы также можете создать этот псевдоним самостоятельно, чтобы он переопределял все node
для вас.
Ответ 2
Некоторые из этих ответов были трудно понять для меня, поэтому я напишу ответ, который помог бы мне.
node
- это что-то вроде программы радиотелеметрических решений, они просто случайно зацепили имя node
. nodejs
- это то, что вам нужно. Так
убедитесь, что вы:
apt-get install nodejs
то, чтобы исправить проблему с хромым именованием, создайте символическую ссылку. Символическая связь между node
и nodejs
.
sudo ln -s /usr/bin/nodejs /usr/bin/node
Первая часть - это исходное размещение файлов, а затем, где она должна ссылаться.
Вы также можете создать псевдоним в своем профиле bash, что также довольно легко.
Ответ 3
Конечно, доступный пакет 'node' не связан с nodejs.
Просто взгляните на это node отсюда:
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
Существует конфликт имен с пакетом node (программа любительского пакетного радио node), а двоичный файл nodejs был переименован из node в nodejs. Вам понадобится symlink/usr/bin/node в /usr/bin/nodejs или вы можете удалить программу Amateur Packet Radio node, чтобы избежать этого конфликта.
Итак, кажется, что вы можете очистить эту радиопрограмму с помощью
dpkg --purge node
И затем установите nodejs через один из общих способов f.e. из предварительно скомпилированных пакетов deb, доступных следующим образом:
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Но nodejs обновляется быстрее, чем пакеты, поэтому после того, как вы получите любую доступную версию nodejs, более эффективно использовать этот модуль для управления версиями nodejs - https://github.com/visionmedia/n
По крайней мере после некоторых тестов это решение выглядит наиболее подходящим для меня в mac os.