Регулярное обновление сервера закрывает уязвимости, добавляет новые функции и обеспечивает совместимость с актуальным софтом. Ubuntu Server имеет два уровня обновлений: пакеты (minor) и версия ОС (major) — и путать их порядок нельзя, иначе можно получить систему с несовместимыми зависимостями.
Обновление пакетов (ежедневная задача)
# Обновить список пакетов
sudo apt update
# Посмотреть доступные обновления
apt list --upgradable
# Обновить все пакеты
sudo apt upgrade -y
# Обновить с разрешением смены зависимостей (рекомендуется)
sudo apt full-upgrade -y
# Убрать ненужные пакеты
sudo apt autoremove -y
sudo apt autoclean
Разница: upgrade vs full-upgrade vs dist-upgrade
| Команда | Поведение | Когда использовать |
|---|---|---|
| apt upgrade | Обновляет без изменения зависимостей | Безопасное обновление |
| apt full-upgrade | Может удалять/добавлять пакеты | Рекомендуется для серверов |
| apt dist-upgrade | Устаревший алиас full-upgrade | Не рекомендуется, используйте full-upgrade |
Разбор типичных ошибок при apt upgrade
- E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? — параллельно уже запущен другой apt/dpkg или недавно был силовой обрыв обновления; подождите завершения процесса или удалите зависший lock-файл только после проверки, что процесс действительно мёртв.
- dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' — предыдущее обновление прервалось на середине; команда из сообщения дозавершает настройку пакетов и обычно чинит проблему.
- Some packages could not be installed... held back — пакет требует установки новой зависимости, которую
apt upgradeне ставит по умолчанию; решается черезapt full-upgrade. - The following signatures couldn't be verified because the public key is not available — устарел или отсутствует GPG-ключ репозитория; нужно переустановить ключ, а не отключать проверку подписи.
Автоматические обновления безопасности
Обновление пакетов — только часть общей защиты сервера; базовые шаги сразу после покупки VPS собраны в статье первые шаги после покупки VDS, а про отдельное обновление ядра — в статье обновление ядра Linux.
# Установить unattended-upgrades
sudo apt install unattended-upgrades -y
# Настройка
sudo dpkg-reconfigure unattended-upgrades
# Конфигурация: /etc/apt/apt.conf.d/50unattended-upgrades
# Разрешить только security-обновления (безопасно для продакшна)
Обновление версии Ubuntu (Major Upgrade)
# Установить update-manager-core
sudo apt install update-manager-core -y
# Проверить доступные версии
do-release-upgrade -c
# Запустить обновление (рекомендуется через screen/tmux!)
sudo screen -S upgrade
sudo do-release-upgrade
# Если сессия прервётся -- переподключиться:
sudo screen -r upgrade
КРИТИЧНО перед major upgrade: сделайте снапшот или бэкап VPS, запускайте только через screen или tmux — обрыв SSH убьёт процесс обновления на полпути, проверьте совместимость приложений с новой версией и выполняйте апгрейд последовательно (20.04 → 22.04 → 24.04), пропускать промежуточные релизы нельзя.
Сравнение способов обновления
| Способ | Что обновляет | Риск простоя | Откат |
|---|---|---|---|
| apt full-upgrade | Пакеты в рамках текущей версии | Низкий | Обычно не нужен |
| unattended-upgrades | Только security-патчи автоматически | Очень низкий | Не нужен |
| do-release-upgrade | Вся версия ОС целиком | Высокий | Только из снапшота |
Поддерживаемые версии Ubuntu LTS
| Версия | Поддержка до | Статус |
|---|---|---|
| Ubuntu 20.04 LTS (Focal) | Апрель 2025 | Заканчивается |
| Ubuntu 22.04 LTS (Jammy) | Апрель 2027 | Текущая |
| Ubuntu 24.04 LTS (Noble) | Апрель 2029 | Актуальная |
Рекомендация: используйте только LTS-версии на продакшн-серверах. Регулярные релизы (23.10, 24.10) поддерживаются только 9 месяцев — слишком короткий срок для сервера, который не хочется трогать каждый квартал.
Когда major upgrade делать не стоит
- На сервере крутится продакшн-приложение с жёсткой зависимостью от старой версии PHP или Python, которую новая LTS уже не поставляет из основного репозитория — сначала мигрируйте приложение, потом обновляйте систему.
- Нет свежего протестированного бэкапа — обновление версии ОС необратимо без снапшота; откатить пакеты назад после major upgrade практически невозможно.
- Сервер обслуживает критичный сервис без окна обслуживания — major upgrade требует времени простоя и перезагрузки, планируйте его на заранее объявленное окно, а не «между делом».
Как проверить, что обновление прошло успешно
# Версия системы после апгрейда
lsb_release -a
# Ядро загрузилось новое (после перезагрузки)
uname -r
# Есть ли пакеты, оставшиеся в сломанном состоянии
sudo apt --fix-broken install
sudo dpkg -l | grep -E '^.[^i]'
# Ключевые сервисы поднялись и не падают
systemctl --failed
Если lsb_release показывает ожидаемую версию, systemctl --failed возвращает пустой список, а команда dpkg -l не находит пакетов в статусе, отличном от установленного, — обновление прошло без критичных проблем.