- Home »

Как установить Node.js на Ubuntu 24 — Руководство для разработчиков
Если вы настраиваете новый сервер или готовите окружение для веб-разработки, установка Node.js — это один из первых шагов, который определит удобство дальнейшей работы. Ubuntu 24 принесла несколько изменений в репозитории и управление пакетами, что может вызвать головную боль у тех, кто привык к старым версиям. В этой статье я покажу проверенные способы установки Node.js, расскажу о подводных камнях и поделюсь практическими советами для продакшена.
Мы разберём три основных метода установки: через официальные репозитории Ubuntu, NodeSource и NVM. Каждый способ имеет свои плюсы и минусы — где-то проще обновления, где-то больше контроля над версиями. Также затронем настройку окружения для разработки и автоматизации развёртывания.
🔧 Как это работает: архитектура Node.js в Ubuntu 24
Node.js в Ubuntu 24 может устанавливаться несколькими способами, каждый из которых по-разному интегрируется с системой. Официальные репозитории Ubuntu содержат стабильную, но часто устаревшую версию Node.js. NodeSource предоставляет свежие релизы через собственный репозиторий, а NVM (Node Version Manager) позволяет управлять несколькими версиями одновременно.
Основные компоненты установки:
- Node.js runtime — собственно движок V8 и среда выполнения
- npm — пакетный менеджер (обычно идёт в комплекте)
- build-essential — набор инструментов для компиляции нативных модулей
- Символические ссылки — для глобального доступа к командам
⚡ Метод 1: Установка через официальные репозитории Ubuntu
Самый простой способ — использовать стандартный менеджер пакетов. Подходит для большинства случаев, когда не нужна самая свежая версия Node.js.
# Обновляем список пакетов
sudo apt update
# Устанавливаем Node.js и npm
sudo apt install nodejs npm
# Проверяем версии
node --version
npm --version
# Устанавливаем build-essential для нативных модулей
sudo apt install build-essential
Плюсы:
- Простота установки
- Интеграция с системой обновлений
- Стабильность
Минусы:
- Устаревшие версии (часто на 1-2 мажорных релиза)
- Медленные обновления
🚀 Метод 2: NodeSource репозиторий (рекомендуется)
NodeSource поддерживает официальные репозитории с актуальными версиями Node.js. Это золотая середина между простотой и актуальностью.
# Устанавливаем curl, если его нет
sudo apt install curl
# Загружаем и выполняем скрипт установки репозитория (для Node.js 20.x)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# Устанавливаем Node.js
sudo apt install nodejs
# Проверяем установку
node --version
npm --version
# Для компиляции нативных модулей
sudo apt install build-essential
Для других версий замените 20.x
на нужную (18.x, 19.x, 21.x).
Интересный факт: NodeSource автоматически настраивает GPG-ключи и источники обновлений, поэтому Node.js будет обновляться вместе с системой.
🎯 Метод 3: NVM — максимальная гибкость
Node Version Manager позволяет устанавливать и переключаться между разными версиями Node.js. Незаменим для разработки, когда нужно тестировать код на разных версиях.
# Устанавливаем NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Перезагружаем профиль или перезапускаем терминал
source ~/.bashrc
# Проверяем установку NVM
nvm --version
# Устанавливаем последнюю LTS версию Node.js
nvm install --lts
# Используем установленную версию
nvm use --lts
# Устанавливаем конкретную версию
nvm install 18.17.0
# Список установленных версий
nvm list
# Переключение между версиями
nvm use 18.17.0
# Установка версии по умолчанию
nvm alias default 20.5.0
📊 Сравнение методов установки
Метод | Скорость установки | Актуальность версий | Управление версиями | Подходит для продакшена |
---|---|---|---|---|
Официальные репозитории | Быстро | Устаревшие | Ограниченное | Да |
NodeSource | Быстро | Актуальные | Одна версия | Да |
NVM | Средне | Любые | Полное | Нет (только для разработки) |
🔧 Настройка окружения и решение проблем
После установки Node.js стоит настроить рабочее окружение и решить типичные проблемы:
Проблема с правами доступа для npm
# Создаём директорию для глобальных пакетов
mkdir ~/.npm-global
# Настраиваем npm для использования новой директории
npm config set prefix '~/.npm-global'
# Добавляем в ~/.bashrc или ~/.zshrc
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Увеличение лимита файловых дескрипторов
# Временно (до перезагрузки)
ulimit -n 65536
# Постоянно — добавляем в /etc/security/limits.conf
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf
🐳 Автоматизация и контейнеризация
Для продакшена часто используется Docker. Вот пример Dockerfile для Node.js приложения:
# Dockerfile для Node.js приложения
FROM node:20-slim
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем package.json и package-lock.json
COPY package*.json ./
# Устанавливаем зависимости
RUN npm ci --only=production
# Копируем исходный код
COPY . .
# Создаём пользователя без root прав
RUN useradd -m -s /bin/bash nodeuser && chown -R nodeuser:nodeuser /app
USER nodeuser
# Открываем порт
EXPOSE 3000
# Запускаем приложение
CMD ["node", "app.js"]
📈 Мониторинг и управление процессами
Для продакшена рекомендуется использовать PM2 — продвинутый менеджер процессов:
# Устанавливаем PM2 глобально
npm install -g pm2
# Запускаем приложение
pm2 start app.js --name "my-app"
# Мониторинг
pm2 monit
# Автозапуск после перезагрузки
pm2 startup
pm2 save
# Управление процессами
pm2 restart my-app
pm2 stop my-app
pm2 delete my-app
🎭 Нестандартные применения и интеграции
Node.js в связке с другими инструментами открывает интересные возможности:
- Nginx + Node.js — обратный прокси для высоконагруженных приложений
- Redis + Node.js — кэширование и сессии
- PostgreSQL + Node.js — мощная связка для веб-приложений
- Elasticsearch + Node.js — поиск и аналитика
Пример настройки Nginx для Node.js:
# /etc/nginx/sites-available/nodeapp
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
🔄 Автоматизация развёртывания
Для автоматизации развёртывания можно использовать GitHub Actions:
# .github/workflows/deploy.yml
name: Deploy Node.js App
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Deploy to server
run: |
# Здесь команды для развёртывания
echo "Deploying to production..."
🎯 Рекомендации по выбору хостинга
Для развёртывания Node.js приложений важно правильно выбрать хостинг. Если вам нужна гибкость и полный контроль, рассмотрите аренду VPS — это позволит настроить окружение под ваши нужды. Для высоконагруженных приложений может понадобиться выделенный сервер.
🎬 Заключение и рекомендации
Выбор метода установки Node.js зависит от ваших целей:
- Для быстрого старта — используйте официальные репозитории Ubuntu
- Для продакшена — NodeSource репозиторий обеспечит актуальные версии
- Для разработки — NVM даст максимальную гибкость
Не забывайте про безопасность: регулярно обновляйте Node.js и npm, используйте npm audit
для проверки уязвимостей, и всегда запускайте приложения от имени непривилегированного пользователя.
Ubuntu 24 хорошо подходит для хостинга Node.js приложений — система стабильная, репозитории актуальные, а LTS поддержка обеспечит долгосрочную работу ваших проектов.
Полезные ссылки:
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.