Я установил nodejs на ubuntu из инструкций, приведенных здесь
Когда я пишу node --version
в терминале, я вижу это: -bash: /usr/sbin/node: No such file or directory
Я вижу node в каталоге /usr/sbin/
.
Написание npm --version
показывает 1.3.5
Написание nodejs --version
показывает v0.10.15
Кроме того, я вижу node в каталоге /usr/bin/
.
Итак, как я могу работать node
?
Кроме того, если я использую zsh вместо bash, то работает команда node
.
Вам нужно вручную создать символическую ссылку /usr/bin/node
. Ярлык для bash совместимых оболочек:
sudo ln -s `which nodejs` /usr/bin/node
Или, если вы используете нестандартные оболочки, просто скопируйте путь, который вы найдете с помощью which nodejs
:
sudo ln -s /usr/bin/nodejs /usr/bin/node
Позже отредактируйте
Я нашел это объяснение в опубликованной вами ссылке
Существует конфликт имен с пакетом node (программа любительского пакетного радио node), а двоичный файл nodejs был переименован из node в nodejs. Вам понадобится symlink/usr/bin/node в /usr/bin/nodejs или вы можете удалить программу Amateur Packet Radio node, чтобы избежать этого конфликта.
Позже отредактируйте
Прошло некоторое время, так как я ответил на это. Хотя решение, которое я опубликовал здесь, работало для меня несколько раз, пользователи сообщили еще несколько решений в комментариях:
От пользователя @user229115
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
Из AskUbuntu (user leftium)
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs
zsh
, то команда node
работает.
sudo apt-get remove node
но он говорит, что Package node is not installed, so not removed
Я думаю, что это так:
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
Использование альтернатив Debian.
update-alternative
. Если это действительно работает, то это лучшее решение :)
По-видимому, решение отличается от версий Ubuntu. После работы у меня на Ubuntu 13.10:
sudo apt-get install nodejs-legacy
НТН
nodejs-legacy
не требует особого сопровождения. Он просто добавляет мягкую ссылку, похожую на sudo ln -s nodejs /usr/bin/node
, по крайней мере, на LTS 14.04
У меня такая же проблема в Ubuntu 14.04.
Я установил "nodejs" , и он работает, но только если я использую команду "nodejs" . Если я пытаюсь использовать "node", ничего не происходит.
Я исправил эту проблему следующим образом:
Установить nodejs-legacy
sudo apt-get install nodejs-legacy
После этого, когда я набираю "node" в командной строке, я получаю сообщение об ошибке "/usr/sbin/ node: нет такого файла или каталога"
Во-вторых, что я сделал, это символическая ссылка на "nodejs" :
sudo ln -s /usr/bin/nodejs /usr/sbin/node
node
должен быть установлен в /usr/bin/
а не в /usr/sbin/
. Это выглядит для меня , как если бы вы установили Ubuntu node
пакет из радиолюбителей ранее (см packages.ubuntu.com/trusty/all/node/filelist ) и забыли запустить hash -r
на уровне оболочки, так что оболочка все еще помнила неправильный путь Второй ln
зафиксировано , что , как хорошо, но это не больше не нужны после того, как вы покинете эту оболочку.
node
( /usr/sbin/node
для чего-то совершенно другого), nodejs
( /usr/bin/nodejs
) и nodejs-legacy
( /usr/bin/node
, зависит от пакета nodejs
).
Это случилось со мной.
node -v => 0.10.2
nodejs -v => 5.5.0
Проблема заключалась в том, что я установил node из исходного кода некоторое время назад. Выполнение
which node
всегда указывал на эту локальную установку. Кроме того,
echo NODE_PATH
указывает на локальную установку.
удаление каталога с исходной установкой не помогло. Он просто сломал команду node. В конце концов, отключить переменную окружения 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 файлов.
rlwrap
. Спасибо!
Как насчет использования официальных инструкций на узле сайта:
Для 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
без предварительного запуска установки script приведет к получению node 0,10.
Если вы планируете устанавливать собственные модули npm, требующие сборки, также запускайте:
sudo apt install -y build-essential
Примечание. Это рекомендуемый путь для любого дистрибутива на основе Debian по всем архитектурам.
Если вам нравится устанавливать несколько версий nodejs и легко переключаться между ними, я бы предложил использовать Node Version Manger. Он также решает проблему именования (node
vs 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)
nvm
Как установить Node.js на сервере Ubuntu 14.04
Поздний ответ, но для актуальной информации...
Если вы установите node.js, используя рекомендуемый метод из node github install readme, он предлагает следовать инструкциям nodeource статью в блоге, вместо установки из устаревшего 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, чтобы сохранить env vars, необходимые для прокси:
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 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
Надеюсь, это поможет. Это помогло мне волшебным образом (хе-хе).
У меня была та же проблема, что и символическая ссылка: sudo ln -s/usr/bin/nodejs/usr/bin/node после этого sudo npm install -g phantomjs-prebuilt
прошел гладко
Лучший способ установить nodejs - через NVM (Node Менеджер версий)
Удалить предыдущие версии:
$ 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 --version
nvm use version-you-require
ИНФОРМАЦИОННЫЙ КУРС:
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps
Будет полезно для абсолютных новичков
Хотя у вас есть ответ, просто хочу указать, что команда node
(без каких-либо параметров) запустит node в режиме REPL read-eval-print-loop, чтобы выполнить необработанный код javascript.
Другим способом использования команды node
является предоставление файла js
в качестве параметра. Именно так мы в основном используем его.
Я создал символическую ссылку, но она все еще не работала.
Я забыл перезагрузить мой терминал (мое соединение шпатель). После того, как я работал без символической ссылки:)
Это необязательно для удаления существующих node и nodejs, но для этого необходимо установить последние 7x nodejs.
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
ls -l /usr/bin/node
?lrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node