Вопрос или проблема
Я установил Nodejs на мой Ubuntu:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
с помощью следующих команд:
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
Результат:
$ nodejs -v
v4.2.6
В интернете я вижу много новых версий https://nodejs.org/en/download/releases/.
Итак,
- Почему такая старая версия установлена по умолчанию
- Как установить более новую версию?
Спасибо!
4.2.6
действительно является версией Node, которая присутствует в репозиториях Xenial. Ubuntu не производит крупных обновлений версий пакетов в рамках одной и той же дистрибуции, поэтому если Node 4 был доступен, когда вышел Xenial (что означает апрель 2016 года, что кажется правильным – это была текущая версия LTS), то вы будете использовать версию 4 на протяжении всего времени жизни Xenial, пока не обновите дистрибуцию.
По крайней мере, это так в случае использования официальных репозиториев. К счастью, существует более актуальный репозиторий для Node, который рекомендуется на официальном сайте Node. Вы можете найти подробные инструкции здесь, но кратко это:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
Ubuntu имеет эту версию nodejs, потому что она была одной из версий LTS (долгосрочная поддержка) и является очень стабильной.
Существует несколько различных способов установки более новых версий. Я бы рекомендовал установить его через nvm, чтобы получить доступ к последним версиям. Кроме того, такой способ установки является более удобным, если вы будете разрабатывать на нескольких системах, а не полагаться на менеджер пакетов системы. Для этого сначала удалите текущую версию
sudo apt-get remove nodejs
Чтобы убедиться, что он полностью удален, вы можете выполнить sudo apt-get purge nodejs
и sudo apt-get autoremove
Теперь мы можем подготовиться к использованию npm, установив build-essential
и libssl-dev
sudo apt-get install build-essential libssl-dev
Теперь мы можем скачать скрипт установки nvm со страницы проекта на GitHub
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh -o install_nvm.sh
Запустите скрипт установки с помощью
bash install_nvm.sh
На этом этапе проще всего выйти из системы, а затем войти обратно, чтобы завершить настройку npm.
Теперь мы можем использовать следующие команды для установки целевой версии nodejs
nvm ls-remote
показывает доступные версии
nvm install (versionNumber)
nvm use (versionNumber)
Вы можете иметь несколько устанавливаемых версий, чтобы выбрать, какую из них использовать
затем проверьте версию, которую вы выбрали, с помощью
node -v
<- Обратите внимание, что с npm команда – это node, а не nodejs
Существует отличная статья на эту тему на Digital Ocean. Для получения дополнительной информации посетите ссылку https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04
.
Ответ или решение
Почему на моем Ubuntu установлен старый вариант Node.js?
Если вы заметили, что на вашем Ubuntu 16.04.6 LTS установлен устаревший вариант Node.js (например, версия 4.2.6), это связано с подходом Ubuntu к управлению пакетами и обновлениям программного обеспечения.
1. Почему установлена такая старая версия?
Ubuntu придерживается философии стабильности, когда речь идет о версиях программного обеспечения, особенно в версиях LTS (Long Term Support, долгосрочная поддержка). Когда Xenial Xerus (16.04) был выпущен в апреле 2016 года, версия Node.js, доступная в официальных репозиториях, была 4.x. В течение жизненного цикла дистрибутива Ubuntu новая версия Node.js не будет автоматически обновляться в репозиториях. Это решение основано на стремлении предоставить пользователям надежное и стабильное программное обеспечение без рисков, связанных с совместимостью.
2. Как установить более новую версию?
Существует несколько способов установить более свежую версию Node.js, и ниже приведены наиболее распространенные методы:
Метод 1: Использование NodeSource:
NodeSource предлагает актуальные бинарные дистрибутивы Node.js. Вы можете установить новую версию Node.js, следуя этим шагам:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
Эти команды загрузят и установят актуальную версию Node.js (например, 14.x), что рекомендуется для большинства пользователей.
Метод 2: Использование NVM (Node Version Manager):
Для разработчиков, работающих с несколькими версиями Node.js, использование NVM может быть лучшим выбором. Установка через NVM позволяет легко переключаться между версиями.
- Удалите существующую версию Node.js:
sudo apt-get remove nodejs
sudo apt-get purge nodejs
sudo apt-get autoremove
- Установите необходимые пакеты для сборки:
sudo apt-get install build-essential libssl-dev
- Скачайте и установите NVM, выполнив:
curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh -o install_nvm.sh
bash install_nvm.sh
- Чтобы завершить установку, перезапустите терминал или выполните следующие команды:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # для bash
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # для bash
- Используйте NVM для установки нужной версии Node.js:
nvm ls-remote # Покажет список доступных версий
nvm install <номер_версии> # Замените <номер_версии> на нужную версию
nvm use <номер_версии> # Активирует выбранную версию
- Проверьте установленную версию:
node -v # Эта команда покажет текущую установленную версию
Если вы следуете приведенным выше рекомендациям, у вас будет установлена последняя версия Node.js, что позволит вам использовать новейшие функции и улучшения.
Заключение
Установка старой версии Node.js на Ubuntu связано с устойчивостью и стабильностью, гарантирующей беспроблемную работу системы в долгосрочной перспективе. Однако при необходимости использования новой версии доступны различные методы, такие как установка через NodeSource или использование NVM для управления версиями. Выбор метода зависит от ваших потребностей и рабочего процесса. Чтобы обеспечить лучшую производительность и совместимость, рекомендуется использовать актуальные версии Node.js.