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 ответов:
Вам нужно вручную создать символическую ссылку
/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". Если я попытаюсь использовать "узел", ничего не произойдет.
Я решил эту проблему следующим образом:
Установить nodejs-legacy
sudo apt-get install nodejs-legacyПосле этого, когда я набираю "node" в командной строке, я получаю сообщение об ошибке "/usr / sbin / node: нет такого файла или каталога "
Во-вторых, то, что я сделал, это символическая ссылка на "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
vsnodejs
)Все очень просто:
Установите версию 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 --versionnvm 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