nodejs против узла в 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
команда работает.
22 ответа
Вам нужно вручную создать символическую ссылку /usr/bin/node
, Ярлык для bash-совместимых оболочек:
sudo ln -s `which nodejs` /usr/bin/node
Или, если вы используете нестандартные оболочки, просто жестко закодируйте путь, который вы найдете с which nodejs
:
sudo ln -s /usr/bin/nodejs /usr/bin/node
Позже редактировать
Я нашел это объяснение в ссылке, которую вы разместили
Существует конфликт имен с пакетом узла (программа любительского пакетного радиоузла), и двоичный файл nodejs был переименован из узла в nodejs. Вам нужно будет использовать символическую ссылку /usr/bin/node в /usr/bin/nodejs, или вы можете удалить программу любительского пакетного радиоузла, чтобы избежать этого конфликта.
Позже позже редактировать
Прошло много времени с тех пор, как я ответил на это. Хотя решение, которое я разместил здесь, сработало для меня несколько раз, пользователи сообщили о нескольких других решениях в комментариях:
От @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 --install /usr/bin/ узел узла /usr/bin/nodejs 10
Использование альтернатив Debian.
Видимо, решение отличается в разных версиях Ubuntu. Следующее работает для меня на Ubuntu 13.10:
sudo apt-get install nodejs-legacy
НТН
Изменить: правило:
Если вы установили nodejs
но не хватает /usr/bin/node
двоичный, затем также установить nodejs-legacy
, Это просто создает недостающую мягкую ссылку.
Согласно моим тестам, Ubuntu 17.10 и выше уже имеют совместимость-softlink /usr/bin/node
на месте после nodejs
установлен, так nodejs-legacy
отсутствует в этих выпусках, так как больше не нужен.
У меня такая же проблема в Ubuntu 14.04.
Я установил "nodejs", и он работает, но только если я использую команду "nodejs". Если я пытаюсь использовать "узел", ничего не происходит.
Я исправил эту проблему следующим образом:
Установите nodejs-legacy
sudo apt-get установить nodejs-legacy
После этого, когда я набираю "узел" в командной строке, я получаю сообщение об ошибке "/ usr / sbin / node: нет такого файла или каталога"
Во-вторых, то, что я сделал, это символическая ссылка на "nodejs":
sudo ln -s / usr / bin / nodejs / usr / sbin / node
Диспетчер версий узлов (nvm)
Если вы хотите установить несколько версий nodejs и легко переключаться между ними, я бы предложил использовать Node Version Manger. Это также решает проблему именования (node
против nodejs
)
Все довольно просто:
Установите версию 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)
Это случилось и со мной.
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 для всех архитектур.
Поздний ответ, но для актуальной информации...
Если вы устанавливаете 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
Обратите внимание, что это для v0.12, которая, скорее всего, устареет в недалеком будущем.
Кроме того, если вы находитесь за корпоративным прокси (например, я), вам нужно добавить опцию -E в команду sudo, чтобы сохранить переменные env, необходимые для прокси:
curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
Добавление к правильному ответу @randunel (пока не могу комментировать SO):
Мне также пришлось использовать символическую ссылку / usr / local / bin / node на /usr/bin/nodejs.
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
Очевидно, это переопределяло команду / usr / bin / node.
Не знаю, как это получилось, но надеюсь, что это поможет кому-то другому, так как было больно понять, почему вышесказанное не работает для меня.
Если вы работаете с экземпляром AWS EC2, на котором запущен экземпляр Ubuntu (протестирован на Ubuntu 16.x), то эти шаги могут работать для вас:
sudo apt-get update sudo apt-get --purge удалить узел -y sudo apt-get --purge удалить nodejs -y sudo apt-get --purge удалить legacy-node -y sudo rm /usr/bin/node curl -sL https://deb.nodesource.com/setup_6.x | Судо Баш - sudo apt-get установить nodejs -y узел -v
Если все правильно, последняя команда должна иметь вывод, например: v6.xx
Если нет, то выполните следующее:
sudo ln -s / usr / bin / nodejs / usr / bin / node
Надеюсь, это поможет. Это помогло мне волшебным образом (хе-хе).
У меня была такая же проблема, символическая ссылка помогла мне: sudo ln -s /usr/bin/nodejs /usr/bin/node после этого 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 | удар
ИЛИ ЖЕ
$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | удар
Проверьте NVM к пути
$ source ~ /.profile
$ nvm ls-remote
если вы получили ошибку в отношении списка, установите git.
$ sudo apt-get install git
Перезапустить:
$ nvm ls-remoteИЛИ ЖЕ
$ sudo nvm ls-remote
$ nvm установить нужную вам версию
Проверка версии
# node --version
NVM использовать версию, которую вы требуете
ИНФОРМАЦИОННЫЙ КУРС:
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps
Вы можете выполнить эту команду для включения 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
Просто используйте NVM (Node Version Manager) - https://github.com/creationix/nvm
Это стало стандартом для управления Node.js.
Когда вам нужна новая версия:
nvm install NEW_VER
nvm use XXX
Если что-то пойдет не так, вы всегда можете вернуться с
nvm use OLD_VER
Будет полезно для начинающих
Хотя, вы получили ответ, просто хотел отметить, что node
Команда (без каких-либо параметров) запустит узел в режиме REPL read-eval-print-loop для выполнения необработанного кода JavaScript.
Еще один способ использования node
команда, предоставляя ему js
файл в качестве параметра. Вот как мы в основном используем это.
Не обязательно удалять существующие node и nodejs, но нужно сделать альтернативную установку последней версии 7.x nodejs.
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
в моем случае я просто использовал это
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Этот установит стабильную версию
Тогда просто сделайте это символической ссылкой
sudo ln -s /usr/local/bin/node
- Сначала установите рекомендуемую версию
- Попробуйте в cmd
node -v
- Если команда работает, попробуйте ее в команде vs
- Если он все еще не работает, «проверьте путь» в переменной среды;
- Если env установлен, перепроверьте, работает он или нет;
- Затем просто выключите компьютер и перезагрузите его.
- Тогда попробуй "надеюсь, получится"
-Перезапуск очень важен для правильного запуска программы в vs.