Гид по технологиям

Управление версиями Node.js на Ubuntu 20.04 с помощью n

• 5 min read • DevOps • Обновлено 24 Nov 2025
n: управление версиями Node.js на Ubuntu 20.04
n: управление версиями Node.js на Ubuntu 20.04

Скриншот интерфейса и логотипа n — менеджер версий Node.js

Кому пригодится этот материал

Разработчикам, которым часто приходится переключаться между проектами с разными требованиями к версии Node.js; системным администраторам и DevOps-инженерам, обеспечивающим окружения для команд разработки; тимлидам, планирующим миграцию приложений на новые версии Node.js.

Краткое определение

n — минималистичный менеджер версий Node.js. Позволяет загружать, устанавливать и переключаться между версиями Node.js через простые команды в терминале.

Требования

  • Сервер или рабочая станция под управлением Ubuntu 20.04.
  • Пользователь с правами для установки программ (root или sudo).

Обновите систему и установите зависимости

Перед началом рекомендуется обновить пакеты и установить необходимые утилиты:

apt-get update -y
apt-get install curl git make -y

Важно: команды выше требуют прав root или sudo.

Установка n через npm

Проще всего установить n глобально через npm:

npm install -g n

Если npm отсутствует, можно скачать и запустить инсталлятор напрямую:

curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n  
bash n lts

Этот скрипт установит Node.js, npm и n. По умолчанию n устанавливается в каталог пользователя, а не в системный PATH — поэтому его нужно добавить в PATH.

Отредактируйте ~/.bashrc:

nano ~/.bashrc

Добавьте строки:

export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH

Сохраните файл и активируйте изменения:

source ~/.bashrc

Альтернативный установщик — n-install:

curl -L https://git.io/n-install | bash

После него также выполните:

source ~/.bashrc

Чтобы удалить n, используйте:

n-uninstall

Для обновления n до последней версии выполните:

n-update

Проверка версии n:

n --version

Пример ожидаемого вывода:

7.3.0

Справка по опциям:

n --help

(Взятый из справки вывод оставлен в неизменном виде.)

Основные команды управления версиями Node.js

Установка последней версии Node.js:

n latest

Пример вывода установки:

  installing : node-v16.4.0
       mkdir : /root/n/n/versions/node/16.4.0
       fetch : https://nodejs.org/dist/v16.4.0/node-v16.4.0-linux-x64.tar.xz
   installed : v16.4.0 (with npm 7.18.1)

Проверка установленной версии Node.js:

node --version

Установка последней LTS-версии:

n lts

Установка конкретной версии:

n 14.15.0

Загрузка (без установки) конкретной версии:

n -d 14.8.0

Запуск загруженной версии без системной установки:

n run 14.8.0

Выход из интерактивного Node.js REPL:

> .exit

Просмотр установленных версий:

n ls

Просмотр доступных версий удалённого репозитория (по умолчанию 20):

n ls-remote

Чтобы отобразить все доступные версии:

n ls-remote --all

Нахождение пути к установленной версии:

n which node/14.8.0

Интерактивное переключение между версиями (поднимите стрелками и нажмите Enter):

n

Удаление конкретной версии:

n rm node/16.4.0

Удалить все загруженные версии, кроме текущей:

n prune

Полное удаление Node.js и npm, установленных через n:

n uninstall

Пример вывода при удалении:

Do you wish to delete node and npm from /root/n? Y

Uninstalling node and npm
/root/n/bin/node
/root/n/bin/npm
/root/n/bin/npx
/root/n/include/node
/root/n/lib/node_modules/npm
/root/n/share/doc/node
/root/n/share/man/man1/node.1
/root/n/share/systemtap/tapset/node.stp

Практические рекомендации и распространённые ошибки

  • Работа от root vs обычный пользователь: n удобно ставить в домашний каталог пользователя (N_PREFIX=$HOME/.n). Установка под root пишет в /root/n и усложняет совместное использование у нескольких пользователей.
  • Разрешения и PATH: если n доступен, но node не меняется — убедитесь, что PATH настроен правильно и расположение n/bin идёт раньше системного /usr/bin.
  • Сохранение глобальных npm-пакетов: используйте опцию -p (–preserve) при установке, чтобы сохранить npm и npx.
  • За прокси и сертификаты: если вы за корпоративным прокси с самоподписанными сертификатами, опция –insecure может помочь, но уменьшит безопасность.
  • Архитектура и сжатие: если возникают ошибки с распаковкой, проверьте параметры –arch и –use-xz/–no-use-xz.

Важно: не меняйте версии Node.js в среде продакшн без тестирования и отката-плана.

Когда n не подходит — альтернативы

  • nvm — более гибкий, подходит для пользовательских окружений и сценариев, где важна совместимость с POSIX-профилями; требует загрузки скрипта в shell.
  • asdf — плагинный менеджер, управляет не только Node.js, но и Python, Ruby, и т.д., полезен в гетерогенных средах.
  • Docker — альтернатива для изолированных окружений: вы явно указываете образ с нужной версией Node.js.

Выбор зависит от сценария: для простых переключений n быстрее и проще; для сложных CI/CD-пайплайнов удобнее Docker или asdf.

Чек-листы по ролям

Чек-лист для разработчика:

  • Убедиться, что локально PATH указывает на N_PREFIX/bin.
  • Установить нужную версию через n и прогнать unit/integration тесты.
  • Зафиксировать минимально необходимую версию Node.js в package.json или README.

Чек-лист для DevOps/администратора:

  • Проверить совместимость глобальных пакетов npm после смены версии.
  • Подготовить тестовую среду и сценарий отката (rollback).
  • Автоматизировать установку n в конфигурации образа/Ansible/Cloud-init.

Чек-лист для тимлида:

  • Согласовать политику обновления версий (когда переходим на LTS/Latest).
  • Определить ответственных за обновления и тестирование.

Плейбук: обновление версии Node.js в проекте

  1. На ветке feature/upgrade создайте окружение с нужной версией:
n lts
  1. Обновите зависимости и запустите тесты:
npm install
npm test
  1. Протестируйте производительность и интеграцию.
  2. Если всё ок — создайте PR и запланируйте деплой в тестовую среду.
  3. Если найден регресс — откатите версию:
n <старый-номер>

Критерии приёмки:

  • Unit и integration тесты проходят на новой версии.
  • CI-пайплайн завершает все стадии успешно.
  • Нет критических ошибок в логах в течение выбранного окна наблюдения.

Тест-кейсы и проверки после смены версии

  • Проверка запуска приложения и основных API-эндпоинтов.
  • Проверка сборки фронтенда (если используется сборка в Node).
  • Проверка глобальных bin-утилит (npm, npx, yarn).
  • Smoke-тест производительности (ключевые сценарии).

Безопасность и совместимость

  • Не используйте –insecure в публичных серверах. Если прокси мешает, настройте доверенные сертификаты.
  • Проверяйте совместимость npm-пакетов с новой версией Node.js (иногда нужны rebuilds native-аддонов: npm rebuild или npm rebuild –update-binary).

Частые вопросы и решения

Q: Node не меняется после n 14.15.0 A: Проверьте, какой node исполняется: which node и echo $PATH. Возможно, устаревший /usr/bin/node стоит раньше N_PREFIX/bin.

Q: Как сохранить глобальные npm-пакеты при смене версии? A: Используйте -p при установке Node через n, или переустановите глобальные пакеты в новой версии.

Q: Можно ли использовать n в CI? A: Да, но в CI обычно удобнее использовать контейнеры с заранее зафиксированными версиями Node.js.

Резюме

n — простой и быстрый инструмент для управления версиями Node.js на Ubuntu 20.04. Он хорош для локальной разработки и лёгких серверных окружений. Для более сложных сценариев стоит рассмотреть nvm, asdf или Docker. Всегда тестируйте изменения, имейте план отката и следите за разрешениями и PATH.

Важно: перед массовой сменой версий согласуйте шаги с командой и проверьте совместимость зависимостей.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро