Home » Как установить Node.js на Ubuntu 24 — Руководство для разработчиков
Как установить Node.js на Ubuntu 24 — Руководство для разработчиков

Как установить 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 поддержка обеспечит долгосрочную работу ваших проектов.

Полезные ссылки:


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked