Гид по технологиям

Как настроить автоматические обновления в Debian Squeeze

• 4 min read • Системное администрирование • Обновлено 18 Nov 2025
Автоматические обновления в Debian Squeeze
Автоматические обновления в Debian Squeeze

Версия 1.0
Автор: Falko Timme
Следите за мной в Twitter

Введение

Это руководство показывает, как настроить систему Debian Squeeze так, чтобы обновления пакетов устанавливалиcь автоматически без вмешательства пользователя. Кроме того, описано, как получать ежедневные уведомления по электронной почте о доступных обновлениях.

Внимание: не даётся гарантий, что инструкция сработает в вашей среде — всегда проверяйте на тестовой системе.

1 Настройка системы для unattended upgrades

Чтобы система устанавливала обновления автоматически, нужно установить пакет unattended-upgrades. Рекомендуется также установить средство отправки почты /usr/bin/mail, например bsd-mailx, если вы хотите получать уведомления по e‑mail:

apt-get install unattended-upgrades bsd-mailx

Далее настройте пакет unattended-upgrades, изменив файл /etc/apt/apt.conf.d/50unattended-upgrades:

vi /etc/apt/apt.conf.d/50unattended-upgrades

Обычно конфигурация по умолчанию подходит; при необходимости измените параметры (в файле есть поясняющие комментарии). Например, можно указать источники обновлений (по умолчанию: stable и security), добавить пакеты в чёрный список, включить отправку почты при ошибках, удалить неиспользуемые зависимости после обновления или настроить автоматический перезапуск системы, если это требуется.

// Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
        "${distro_id} stable";
        "${distro_id} ${distro_codename}-security";
//      "${distro_id} ${distro_codename}-updates";
//      "${distro_id} ${distro_codename}-proposed-updates";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//      "vim";
//      "libc6";
//      "libc6-dev";
//      "libc6-i686";
};

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. The package 'mailx'
// must be installed or anything that provides /usr/bin/mail.
//Unattended-Upgrade::Mail "root@localhost";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if a
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";


// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

Далее создайте файл /etc/apt/apt.conf.d/02periodic, чтобы включить периодические обновления (в файле также есть комментарии):

vi /etc/apt/apt.conf.d/02periodic
// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";

// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";

// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";

// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";

// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "7";

После этого unattended upgrades будут запускаться раз в сутки через cron-скрипт /etc/cron.daily/apt. Скрипт пишет лог в /var/log/unattended-upgrades/unattended-upgrades.log.

Пример записей в логе после успешного обновления:

2011-07-13 16:49:30,878 INFO Initial blacklisted packages:  
2011-07-13 16:49:30,880 INFO Starting unattended upgrades script  
2011-07-13 16:49:30,880 INFO Allowed origins are: ["('Debian', 'stable')", "('Debian', 'squeeze-security')"]  
2011-07-13 16:50:05,222 INFO Packages that are upgraded: apt apt-listchanges apt-utils base-files bind9-host  
console-setup dnsutils dpkg e2fslibs e2fsprogs host isc-dhcp-client isc-dhcp-common keyboard-configuration  
klibc-utils libbind9-60 libcomerr2 libdns69 libgssapi-krb5-2 libgssrpc4 libisc62 libisccc60 libisccfg62  
libk5crypto3 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2  
liblwres60 libperl5.10 libruby1.8 libss2 libxml2 linux-base linux-image-2.6.32-5-amd64 login openssl passwd  
perl perl-base perl-modules python python-apt python-apt-common python-minimal tzdata  
2011-07-13 16:50:05,225 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-07-13_16:50:05.224836.log'  
2011-07-13 16:51:51,290 INFO All upgrades installed

2 Настройка уведомлений об обновлениях (apticron)

Пакет apticron полезен тем, что рассылает уведомления о доступных обновлениях и включает список изменений для каждого пакета.

Установка apticron:

apt-get install apticron

Конфигурация в /etc/apticron/apticron.conf — поменяйте директиву EMAIL и укажите одну или несколько почтовых адресов (через пробел):

vi /etc/apticron/apticron.conf
[...]
# set EMAIL to a space separated list of addresses which will be notified of
# impending updates
#
EMAIL="root@localhost [email protected]"
[...]

По умолчанию остальные параметры подходят для большинства случаев.

Контрольные точки и логи

  • Лог unattended-upgrades: /var/log/unattended-upgrades/unattended-upgrades.log
  • Дополнительные логи dpkg: путь в сообщении лога (см. пример выше)
  • Проверить, что cron.daily выполняется: systemctl status cron (или /etc/init.d/cron для старых систем)

Быстрый чеклист (мини-методология)

  1. На тестовой машине: выполнить apt-get update && apt-get upgrade вручную.
  2. Установить unattended-upgrades и bsd-mailx.
  3. Отредактировать /etc/apt/apt.conf.d/50unattended-upgrades по потребностям.
  4. Создать /etc/apt/apt.conf.d/02periodic с нужными интервалами.
  5. Установить apticron и задать EMAIL.
  6. Проверить отправку почты (mail или лог MTA).
  7. Проверить логи и убедиться, что обновления применяются корректно.

Когда это не сработает — распространённые причины и отладка

  • Нет рабочей конфигурации MTA или отсутствует /usr/bin/mail: проверяйте bsd-mailx/ssmtp/postfix.
  • Права или SELinux/AppArmor блокируют выполнение скриптов или запись в логи.
  • Конфликты зависимостей требуют ручного вмешательства: unattended-upgrades не сможет автоматически разрешить все конфликты.
  • Нестабильные сторонние репозитории могут ломать автоматический процесс — исключайте их из Allowed-Origins.

Советы по отладке:

  • Запустите unattended-upgrades вручную с повышенной детализацией.
  • Просмотрите /var/log/unattended-upgrades/*.
  • Убедитесь, что apt-get update выполняется успешно в /etc/cron.daily/apt.

Риски и меры предосторожности

  • Автоматические обновления могут привести к изменению конфигураций или перезапуску сервисов. Рекомендуется тестировать обновления на стенде.
  • Для критичных серверов рассмотрите стратегию staged rollout: сначала тестовый островок, затем non-critical, затем production.
  • Всегда храните резервные копии конфигураций и план отката.

Миграция и совместимость

Debian Squeeze — устаревшая версия. Для долгосрочной поддержки рассматривайте обновление до поддерживаемой ветки Debian. Перед миграцией:

  • Проверьте совместимость приложений и пакетов.
  • Сделайте полный бэкап.
  • Выполните тестовое обновление на копии системы.

Чеклист по ролям

  • Системный администратор: установить пакеты, настроить /etc/apt/…, проверить логи и мониторинг.
  • Операции/DevOps: настроить отправку почты и интеграцию с системой оповещений.
  • Разработчики: уведомить команду о возможных изменениях и тестировать приложение после обновлений.

Дерево принятия решения (Mermaid)

flowchart TD
  A[Нужны автоматические обновления?] -->|Да| B{Критичный сервер?}
  A -->|Нет| Z[Не включать unattended-upgrades]
  B -->|Да| C[Включить только security и тестировать]
  B -->|Нет| D[Включить full unattended-upgrades]
  C --> E[Настроить уведомления и откат]
  D --> E

Критерии приёмки

  • Скрипт unattended-upgrades запускается ежедневно.
  • Файл /var/log/unattended-upgrades/unattended-upgrades.log обновляется после запуска.
  • При включённой отправке почты приходят уведомления на указанные адреса.
  • Система корректно загружает пакеты и не оставляет блокировок apt.

Краткое резюме

  • Установите unattended-upgrades и bsd-mailx для автоматической установки и оповещений.
  • Настройте /etc/apt/apt.conf.d/50unattended-upgrades и /etc/apt/apt.conf.d/02periodic.
  • Для уведомлений об ожидающих обновлениях используйте apticron и укажите EMAIL.
  • Тестируйте и имейте план отката для критичных систем.

Полезная ссылка

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро