Обновление 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
Три правила для этой процедуры:
- Полный бэкап обязателен. Откатить неудачное обновление релиза «на месте» нельзя.
- Запускайте в screen или tmux. Если SSH-сессия оборвётся посреди обновления, процесс продолжится внутри мультиплексора. Сам do-release-upgrade дополнительно открывает резервный SSH-порт 1022 — не блокируйте его файрволом на время обновления.
- С 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-доступом и безлимитным трафиком. Сервер разворачивается за минуту — выбрать тариф.