Автоматическое обновление игнорирует некоторые пакеты

У меня настроены автоматические обновления, но некоторые пакеты не обновляются автоматически.

root@survey:/home/martin# apt update

root@survey:/home/martin# unattended-upgrade -v --dry-run
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=xenial, o=Ubuntu,a=xenial-updates, o=Ubuntu,a=xenial-security, o=UbuntuESM,a=xenial
No packages found that can be upgraded unattended and no pending auto-removals

root@survey:/home/martin# /usr/lib/update-notifier/apt-check -p
python-rfc3339
python-zope.hookable
python-configargparse
python-zope.component

Конфигурация источников в /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-updates";
        "${distro_id}:${distro_codename}-security";
        "${distro_id}ESM:${distro_codename}";
};

Насколько мне известно, ожидающие пакеты приходят из официального репозитория Ubuntu ( Launchpad link ), поэтому я не вижу причины, по которой она не была бы подхвачена unattended-upgrade.

Выходные данные команды говорят, что

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

Существует ли случай, когда инструмент выбирает пакет, поступает из разрешенного источника, но по какой-то причине не может быть обновлен без присмотра? Какие дальнейшие шаги я могу сделать, чтобы выяснить , почему некоторые пакеты не имеют права?

6
задан 10 July 2019 в 11:34

3 ответа

Я полагаю, что Вы отсутствуете 20auto-upgrades и должен сначала реализовать его правильно, чтобы видеть, устраняет ли это Вашу проблему перед хождением дальше. Вы видите, что это - важный шаг в документации Автоматических обновлений.

$ cat /etc/apt/apt.conf.d/20auto-upgrades 
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Если у Вас есть тот файл, и он все еще не работает, можно попытаться выяснить то, что удерживает на месте пакеты. Я предпочитаю Origins-Pattern кому: Allowed-Origins, который отличается от документации, но работал хорошо на меня:

$ vim /etc/apt/apt.conf.d/50unattended-upgrades
# You need to customize configuration

Вот пример критического компонента 'Шаблона' в 50unattended-upgrades:

Unattended-Upgrade::Origins-Pattern {
        // Codename based matching:
        // This will follow the migration of a release through different
        // archives (e.g. from testing to stable and later oldstable).

        // Archive or Suite based matching:
        // Note that this will silently match a different release after
        // migration to the specified archive (e.g. testing becomes the
        // new stable).
//      "o=Ubuntu,a=stable";
//      "o=Ubuntu,a=stable-updates";
//      "o=Ubuntu,a=proposed-updates";
        "origin=Ubuntu,codename=${distro_codename}";
};

Это - пример, который не ограничивает на основе репозитория:

Unattended-Upgrade::Origins-Pattern {
      "o=*";
}

Вы только захотите также Origin-Patterns или Allowed-Origins и не оба. Это более ясно и зарегистрировано в Необслуживаемую документацию Обновлений Debian.

Попытайтесь включить просто это, которое является только Обновлениями системы защиты. Тест, что это работает и добавляет Ваши другие шаблоны, один за другим, пока Вы не добавляете каждого и проверяете, что каждый обновленный не повреждает Ваше тестирование пробного прогона.

Я также рекомендовал бы указать Ubuntu и записать совершенно другие конфигурационные файлы для систем Debian, если у Вас есть соединение.


Убедитесь, что Вы не держите пакетов, которые могли предотвратить обновления:

$ sudo apt-mark showhold

Убедитесь, что можно обычно устанавливать обновления, или что apt настроен для приоритизации каждого типа выпуска правильно:

$ cat /etc/apt/preferences.d/custom
Package: *
Pin: release a=bionic
# Only explicit installs
#Pin-Priority: 1001
# Explicit and dependencies
Pin-Priority: 900

Package: *
Pin: release a=testing
Pin-Priority: 399

Package: *
Pin: release a=unstable
Pin-Priority: -10

Некоторые обновления потребуют перезагрузки машины, и необходимо будет решить, делаете ли Вы это вручную или позволяете apt перезапускать машину в установленный срок при необходимости обновлениями.

1
ответ дан 23 November 2019 в 08:04

Стоящий проверки, отметили ли Вы для содержания пакетов, которые могли бы препятствовать тому, чтобы пакеты обновили.

sudo apt-mark showhold
1
ответ дан 23 November 2019 в 08:04

Подобный вопрос задали прежде:

Принять состояния ответа:

Большая часть ответа находится в Вашем файле журнала необслуживаемых обновлений, расположенном в /var/log/unattended-upgrades/unattended-upgrades.log

Вот пример:

2018-01-08 06:17:51,770 INFO Starting unattended upgrades script
2018-01-08 06:17:51,771 INFO Allowed origins are: ['o=Ubuntu,a=xenial-security']
2018-01-08 06:18:07,765 INFO No packages found that can be upgraded unattended and no pending auto-removals

Смотрите на ту среднюю строку, 'Позволенную источники'. Это означает Репозитории программного обеспечения. Единственный источник там - безопасность. Не - обновления, не - бэкпорты, никакой PPAs, никакой сторонний repos.

Другими словами, этот пример необслуживаемые обновления только обеспечивает обновления безопасности. Ничто иное.

Можно добавить, удалить или отредактировать Позволенные Источники (репозитории) через программное обеспечение и Панель управления Обновлений, или путем редактирования файла конфигурации необслуживаемых обновлений, расположенного в /etc/apt/apt.conf.d/50unattended-upgrades.

Остальная часть ответа - то, что Гостеприимный (16.04) два года. Меньше новых обновлений системы защиты для старого программного обеспечения.


Дополнительное чтение:

1
ответ дан 23 November 2019 в 08:04

Другие вопросы по тегам:

Похожие вопросы: