Обновление сервера Ubuntu/Debian: правильный порядок

Настройка сервера
Обновление сервера Ubuntu/Debian: правильный порядок

Обновление Ubuntu Server — та рутина, которую новички либо игнорируют месяцами, либо выполняют бездумной командой из первого попавшегося форума. Оба пути ведут к проблемам: устаревший сервер взламывают через известные уязвимости, а необдуманный apt full-upgrade без бэкапа может уронить продакшен. В этой инструкции разберём, чем apt update отличается от apt upgrade, в каком порядке обновлять пакеты на Ubuntu 24.04 LTS и Debian, когда действительно нужна перезагрузка и как автоматизировать установку патчей безопасности.

Почему обновления — это не опция

Свежекупленный VPS попадает под сканирование ботов уже в первые минуты после выдачи IP-адреса. Боты перебирают известные уязвимости: старые версии OpenSSH, дырявые библиотеки, непропатченные ядра. Статистика взломов серверов однообразна — в большинстве случаев эксплуатируется уязвимость, патч для которой вышел месяцы назад.

  • Безопасность. Обновления закрывают CVE-уязвимости в ядре, OpenSSL, sshd и других критичных компонентах.
  • Стабильность. Минорные обновления исправляют утечки памяти и баги, из-за которых службы падают под нагрузкой.
  • Совместимость. Свежие версии PHP, Python, Node.js требуют актуальных системных библиотек.
  • Производительность. Обновления ядра нередко приносят оптимизации планировщика и сетевого стека.

Если вы только что арендовали сервер, обновление — первое, что стоит сделать после подключения. Полный список действий — в статье «Первые 10 шагов после покупки VPS».

apt update, upgrade и full-upgrade: в чём разница

Главный источник путаницы — три похожие команды, которые делают разные вещи.

КомандаЧто делаетУстанавливает пакеты?
apt updateСкачивает свежие списки пакетов из репозиториевНет
apt upgradeОбновляет установленные пакеты; может ставить новые зависимости, но не удаляет существующие пакетыДа
apt full-upgradeТо же, что upgrade, но может удалять пакеты, если это нужно для разрешения зависимостей (аналог apt-get dist-upgrade)Да

Запомните главное: apt update ничего не устанавливает. Это обновление «прайс-листа», а не товаров. Без него apt upgrade будет работать со вчерашними данными и не увидит свежие версии. Поэтому команды всегда идут парой.

Пошаговое обновление сервера Ubuntu 24.04

Шаг 1. Бэкап перед обновлением

Для повседневных обновлений достаточно копии конфигураций и данных:

sudo tar -czf /root/backup-$(date +%F).tar.gz /etc /var/www

Перед крупными обновлениями (новое ядро, новая версия СУБД) лучше иметь полный бэкап на другой машине — как его выстроить, читайте в статье «Резервное копирование VPS: стратегия 3-2-1».

Шаг 2. Обновите списки пакетов

sudo apt update

В конце вывода apt сообщит, сколько пакетов можно обновить. Посмотреть список целиком:

apt list --upgradable

Шаг 3. Установите обновления

sudo apt upgrade

apt покажет список изменений и попросит подтверждение. Прочитайте его: если среди обновляемых пакетов есть ваша СУБД или веб-сервер — служба будет перезапущена, планируйте это на период низкой нагрузки. Раз в пару недель стоит выполнять и полное обновление:

sudo apt full-upgrade

Шаг 4. Удалите ненужное

Старые ядра и осиротевшие зависимости занимают место на диске:

sudo apt autoremove --purge
sudo apt autoclean

Флаг --purge удаляет ещё и конфигурационные файлы пакетов, а autoclean чистит кэш скачанных .deb-файлов.

Шаг 5. Проверьте, нужна ли перезагрузка

cat /var/run/reboot-required 2>/dev/null && echo "Нужна перезагрузка" || echo "Перезагрузка не требуется"

Файл /var/run/reboot-required появляется после обновления ядра или базовых библиотек. Если перезагрузка не нужна, но обновились библиотеки, которые используют работающие службы, — перезапустите только их. На Ubuntu Server 24.04 утилита needrestart уже установлена и запускается после apt автоматически; вручную её можно вызвать так:

sudo needrestart

Перезагрузка на KVM-виртуализации проходит быстро: на VPS Cheap-Host с NVMe-дисками сервер обычно возвращается в строй за 20–30 секунд, так что даже тариф Start за 450 ₽/мес можно спокойно перезагружать в тихие часы без заметного простоя.

Автоматические обновления безопасности

Ставить руками каждый патч OpenSSL — нереально. Для этого существует unattended-upgrades: пакет автоматически устанавливает обновления из репозитория security. На Ubuntu 24.04 он включён по умолчанию, проверить и донастроить можно так:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Статус таймеров:

systemctl status apt-daily.timer apt-daily-upgrade.timer

Важно понимать: unattended-upgrades по умолчанию ставит только обновления безопасности, а не все подряд, и не перезагружает сервер. Это разумный баланс — критичные дыры закрываются сами, а потенциально ломающие изменения ждут вас. Подробная настройка, включая автоперезагрузку по расписанию и уведомления на почту, — в отдельной статье «Автоматические обновления безопасности: unattended-upgrades».

Как заморозить версию пакета

Иногда обновлять пакет нельзя: например, приложение протестировано только с конкретной версией PHP или БД. Для этого есть apt-mark:

sudo apt-mark hold mysql-server
apt-mark showhold
sudo apt-mark unhold mysql-server

Пакет на «холде» будет пропускаться при upgrade, пока вы не снимете блокировку. Используйте это точечно: чем больше замороженных пакетов, тем больше накапливается технический долг.

Обновление до нового релиза Ubuntu

Обновление пакетов внутри релиза и переход на новый релиз (например, с 22.04 на 24.04) — разные операции. Релиз меняют утилитой do-release-upgrade:

sudo apt update && sudo apt full-upgrade
sudo apt install ubuntu-release-upgrader-core
sudo do-release-upgrade

Три правила для этой процедуры:

  1. Полный бэкап обязателен. Откатить неудачное обновление релиза «на месте» нельзя.
  2. Запускайте в screen или tmux. Если SSH-сессия оборвётся посреди обновления, процесс продолжится внутри мультиплексора. Сам do-release-upgrade дополнительно открывает резервный SSH-порт 1022 — не блокируйте его файрволом на время обновления.
  3. С LTS на LTS ждите первого point-релиза. do-release-upgrade предложит переход с 22.04 на 24.04 только после выхода 24.04.1 — это защита от ранних багов.

Иногда проще не обновлять релиз, а развернуть чистый сервер с нужной версией ОС и перенести данные: у Cheap-Host новый VPS с Ubuntu, Debian, AlmaLinux или Rocky Linux разворачивается за 45–60 секунд, а IP и SSH-доступ выдаются моментально — удобно поднять машину рядом, перенести проект и убить старую.

Частые проблемы при обновлении

  • «Could not get lock /var/lib/dpkg/lock-frontend». apt уже работает — обычно это фоновый unattended-upgrades. Подождите 5–10 минут. Проверить: ps aux | grep -i apt.
  • Вопрос про конфигурационный файл. Если вы правили конфиг пакета, apt спросит, оставить вашу версию или взять новую. По умолчанию безопасно оставить свою (N), а новую посмотреть рядом в файле *.dpkg-dist.
  • Прерванное обновление. После обрыва соединения выполните sudo dpkg --configure -a, затем sudo apt install -f — это доведёт до конца недонастроенные пакеты.
  • Кончилось место на диске. Проверьте df -h, почистите кэш sudo apt clean и старые ядра через sudo apt autoremove --purge.

Обновления — только один пункт гигиены сервера. Полный список мер защиты собран в статье «Безопасность VPS: чек-лист из 15 пунктов».

FAQ

Чем apt update отличается от apt upgrade?

apt update только скачивает свежие списки пакетов и ничего не устанавливает. apt upgrade устанавливает доступные обновления. Поэтому команды всегда выполняются парой: сначала update, затем upgrade.

Как часто нужно обновлять сервер?

Обновления безопасности — как можно быстрее, лучше автоматически через unattended-upgrades. Полное обновление вручную — раз в 1–2 недели, в период низкой нагрузки и после свежего бэкапа.

Обязательно ли перезагружать сервер после обновления?

Только если обновилось ядро или базовые библиотеки — тогда появится файл /var/run/reboot-required. В остальных случаях достаточно перезапустить затронутые службы, их покажет needrestart.

Что делать при ошибке «Could not get lock»?

apt занят другим процессом, чаще всего unattended-upgrades. Подождите несколько минут. Удалять lock-файлы вручную можно только убедившись, что процесс завис: ps aux | grep -i apt.

Можно ли обновить Ubuntu 22.04 до 24.04 прямо на VPS?

Да, через do-release-upgrade — с полным бэкапом, в screen/tmux и желательно после выхода point-релиза 24.04.1. Альтернатива — развернуть чистый сервер с 24.04 и перенести данные.

Вывод

Правильное обновление сервера Ubuntu — это пара минут в неделю: apt update, просмотр списка изменений, apt upgrade, autoremove и проверка reboot-required. Патчи безопасности доверьте unattended-upgrades, а перед крупными изменениями делайте бэкап — тогда обновления перестанут быть лотереей.

Если для экспериментов или продакшена нужен сервер — у Cheap-Host тариф Start от 450 ₽/мес: 6 vCPU, 8 ГБ RAM, 96 ГБ NVMe, KVM с полным root-доступом и безлимитным трафиком. Сервер разворачивается за минуту — выбрать тариф.

Читайте также