Регулярне оновлення сервера закриває вразливості, додає нові функції та забезпечує сумісність з актуальним софтом. 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 не знаходить пакетів у статусі, відмінному від встановленого, — оновлення пройшло без критичних проблем.