Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Адміністрація

Як вимкнути автоматичні оновлення в Ubuntu (Повний посібник)

За замовчуванням Ubuntu автоматично встановлює оновлення, щоб забезпечити безпеку та стабільність вашої системи. Хоча така поведінка ідеальна для більшості користувачів настільних комп’ютерів, вона може бути проблематичною в production середовищах, тестових серверах або будь-якій ситуації, де вам потрібен точний контроль над версіями програмного забезпечення. Несподівані оновлення можуть порушити залежності, перервати запущені сервіси або внести регресії, які важко діагностувати під тиском.

Цей посібник проведе вас через кожен метод відключення автоматичних оновлень в Ubuntu — охоплюючи APT, Snap та systemd таймери — разом із найкращими практиками для забезпечення безпеки при ручному керуванні оновленнями.

Чому ви можете захотіти вимкнути автоматичні оновлення

Автоматичні оновлення — це розумна налаштування за замовчуванням, але є законні причини їх вимкнути:

  • Стабільність сервера: У середовищі VPS Hosting або виділеного сервера незаплановане оновлення ядра або перезавантаження сервісу може спричинити несподіваний час простою.
  • Закріплення версії: Програми зі строгими вимогами до залежностей можуть зламатися, якщо базові пакети будуть мовчки оновлені.
  • Тестові середовища: Відтворювані тестові середовища вимагають послідовних версій пакетів у всіх запусках.
  • Контрольовані конвеєри розгортання: Робочі процеси DevOps часто керують оновленнями через конвеєри CI/CD, а не через саму ОС.
  • Обмеження ресурсів: Автоматичні фонові оновлення споживають CPU, RAM і пропускну здатність — ресурси, які можуть бути критичними на завантаженому сервері.

Розуміння компромісів є важливим. Вимкнення автоматичних оновлень повністю перекладає відповідальність за безпекові патчі на вас.

Основні механізми автоматичного оновлення в Ubuntu

Перш ніж щось вимикати, корисно розуміти, що саме ви вимикаєте. Ubuntu використовує чотири основні механізми для автоматичного оновлення:

МеханізмПризначення
unattended-upgradesАвтоматично встановлює оновлення безпеки та інші оновлення
APT::PeriodicКонтролює, як часто APT перевіряє та завантажує оновлення
snapdАвтоматично оновлює пакети Snap
systemd timersПланує фонові завдання оновлення APT

Кожен з цих механізмів можна вимкнути незалежно, що дає вам детальний контроль над поведінкою оновлення вашої системи.

Метод 1: Вимкнення автоматичних оновлень APT через файл конфігурації

Це найпоширеніший і рекомендований підхід. Конфігурація періодичного APT Ubuntu зберігається в /etc/apt/apt.conf.d/20auto-upgrades.

Крок 1: Відкрийте файл конфігурації

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Крок 2: Змініть значення конфігурації

Зазвичай ви побачите щось подібне:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Змініть обидва значення на "0" для вимкнення автоматичного оновлення списку та автоматичних оновлень:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

Крок 3: Збережіть і вийдіть

Натисніть Ctrl+O для збереження файлу, потім Ctrl+X для виходу з редактора nano.

Додатково: розширені параметри APT Periodic

Для більш детального контролю ви також можете редагувати або створити /etc/apt/apt.conf.d/10periodic:

sudo nano /etc/apt/apt.conf.d/10periodic

Встановіть усі значення на "0":

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";

Це забезпечує відсутність фонової активності APT.

Метод 2: Повністю видалити пакет unattended-upgrades

Якщо ви віддаєте перевагу більш остаточному підходу, ви можете повністю видалити пакет unattended-upgrades:

sudo apt remove unattended-upgrades -y

Щоб також видалити його файли конфігурації:

sudo apt purge unattended-upgrades -y

Це повністю усуває сервіс, відповідальний за автоматичні оновлення безпеки. Використовуйте цей підхід лише якщо ви впевнені у своєму робочому процесі ручного оновлення.

Метод 3: Вимкнення автоматичних оновлень Snap

Пакети Snap керуються snapd і оновлюються незалежно від APT. Існує два способи це вирішити.

Варіант A: Зупинення та вимкнення служби snapd

Це найбільш агресивний підхід і запобігатиме всій функціональності Snap:

sudo systemctl stop snapd.service
sudo systemctl disable snapd.service

> Примітка: Повне вимкнення snapd запобігатиме запуску всіх пакетів Snap. Використовуйте це лише якщо ви не покладаєтесь на жодні додатки на основі Snap.

Варіант B: Зміна графіка оновлення Snap (рекомендується)

Безпечніший підхід — встановити таймер оновлення на вікно, яке ніколи не відбувається, ефективно блокуючи автоматичні оновлення, зберігаючи функціональність Snap:

sudo snap set system refresh.timer=00:00-00:00

Крім того, ви можете використовувати systemctl edit для перевизначення середовища служби:

sudo systemctl edit snapd.service

Додайте наступний блок:

[Service]
Environment=SNAPD_REFRESH_TIMER=00:00-00:00

Збережіть і вийдіть. Це блокує Snap від автоматичного оновлення пакетів без повного вимкнення служби.

Метод 4: Вимкнення systemd Timers для APT

Ubuntu використовує systemd timers для планування завдань оновлення APT. Ці таймери працюють незалежно від unattended-upgrades сервісу і також повинні бути вимкнені для повного контролю.

Вимкніть і зупиніть обидва таймери однією командою:

sudo systemctl disable --now apt-daily.timer
sudo systemctl disable --now apt-daily-upgrade.timer
  • apt-daily.timer — запускає щоденне оновлення списку пакетів APT
  • apt-daily-upgrade.timer — запускає щоденний процес оновлення

Прапор --now вимикає таймер від запуску при завантаженні та зупиняє його негайно, якщо він наразі працює.

Як перевірити, що автоматичні оновлення вимкнені

Після застосування наведених вище змін підтвердіть, що все правильно вимкнено.

Перевірка статусу таймера systemd

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

Обидва таймери повинні повідомляти як inactive (dead). Якщо один із них показує active, повторіть кроки вимкнення вище.

Перевірка конфігурації APT

cat /etc/apt/apt.conf.d/20auto-upgrades

Очікуваний результат:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

Перевірка статусу служби unattended-upgrades

systemctl status unattended-upgrades

Якщо ви видалили пакет, ця команда повернеться помилкою, яка вказує, що служба не існує — це очікуваний результат.

Важливі міркування безпеки після вимкнення автоматичних оновлень

Вимкнення автоматичних оновлень є дійсним адміністративним вибором, але це передбачає реальні обов’язки. Ось що ви повинні робити, щоб забезпечити безпеку вашої системи:

1. Оновлюйте вручну та регулярно

Запускайте наступні команди за постійним графіком — мінімум раз на тиждень:

sudo apt update && sudo apt upgrade -y

Для повного оновлення на рівні дистрибутива:

sudo apt full-upgrade -y

2. Моніторте рекомендації безпеки

Підпишіться на список розсилки Ubuntu Security Notices (USN) або RSS-канал. Це гарантує, що ви будете в курсі критичних вразливостей відразу після їх розкриття.

3. Створюйте знімки перед оновленням

На виробничих серверах завжди створюйте знімок системи або резервну копію перед застосуванням оновлень. Якщо ви використовуєте Dedicated Server, використовуйте інструменти снімків вашого провайдера або рішення на кшталт rsync, Timeshift або LVM snapshots для створення точки відновлення.

4. Використовуйте проміжне середовище

Тестуйте оновлення в проміжному або розробницькому середовищі перед застосуванням їх до виробництва. Це особливо важливо для серверів, на яких запущені складні стеки.

5. Періодично перевіряйте встановлені пакети

apt list --upgradable

Це показує всі пакети з доступними оновленнями, дозволяючи вам вибірково застосовувати патчі на основі пріоритету.

Як повторно увімкнути автоматичні оновлення

Якщо ви вирішите відновити поведінку автоматичного оновлення, процес простий.

Повторне включення через файл конфігурації

Відредагуйте /etc/apt/apt.conf.d/20auto-upgrades і встановіть значення назад на "1":

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Переустановка unattended-upgrades

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

Повторне включення systemd Timers

sudo systemctl enable --now apt-daily.timer
sudo systemctl enable --now apt-daily-upgrade.timer

Повторне включення Snap Auto-Refresh

sudo snap set system refresh.timer=00:00~24:00/4

Це відновлює розклад оновлення Snap за замовчуванням (чотири рази на день у випадкові інтервали).

Вибір правильного хостинг-середовища для ручного контролю оновлень

Якщо ви керуєте оновленнями вручну, тип хостинг-середовища, який ви використовуєте, має значення. Повний root-доступ необхідний для рівня контролю, описаного в цьому посібнику.

  • VPS Hosting — Ідеально підходить для розробників та системних адміністраторів, які потребують повного контролю над своїм Ubuntu-середовищем, включаючи управління оновленнями, конфігурацію ядра та планування служб.
  • Dedicated Servers — Найкраще для високонавантажених виробничих робочих навантажень, де час оновлення, використання ресурсів та стабільність є критично важливими.
  • VPS з cPanel — Гарний варіант, якщо ви хочете root-рівневий контроль у поєднанні з графічним інтерфейсом для управління параметрами сервера та розміщеними веб-сайтами.

Середовища спільного хостингу зазвичай не надають доступу на рівні ОС, необхідного для зміни конфігурацій APT або systemd.

Швидкий довідник: Усі команди з першого погляду

# Disable APT auto-updates via config
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
# Set both values to "0"

# Remove unattended-upgrades package
sudo apt remove unattended-upgrades -y

# Disable Snap auto-refresh (safe method)
sudo snap set system refresh.timer=00:00-00:00

# Disable Snap service entirely (aggressive)
sudo systemctl stop snapd.service
sudo systemctl disable snapd.service

# Disable systemd APT timers
sudo systemctl disable --now apt-daily.timer
sudo systemctl disable --now apt-daily-upgrade.timer

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

# Manual update command
sudo apt update && sudo apt upgrade -y

Висновок

Вимкнення автоматичних оновлень в Ubuntu дає вам точний контроль над тим, коли і як зміни застосовуються до вашої системи. Це особливо цінно в серверних середовищах, конвеєрах CI/CD та будь-якому контексті, де стабільність і передбачуваність мають пріоритет над швидкістю.

Процес включає чотири ключові області: конфігурація APT periodic, пакет unattended-upgrades, механізм оновлення Snap та таймери systemd. Розгляд всіх чотирьох гарантує, що жоден фоновий процес оновлення не зможе змінити вашу систему без вашої явної дії.

Однак цей контроль несе відповідальність. Ви повинні дотримуватися регулярного графіка ручного оновлення, стежити за рекомендаціями безпеки та зберігати резервні копії перед застосуванням змін. Добре керована сервер з ручними оновленнями є безпечною — занедбана ж ні.

Незалежно від того, чи запускаєте ви середовище розробки, сервер виробничого додатку чи спеціалізоване навантаження на GPU Hosting, розуміння та контроль вашої стратегії оновлення є фундаментальною частиною професійного адміністрування системи.