Различное количество доступных обновлений безопасности в сценариях apt-check и unattend-update s

Я обнаружил, что есть разница между количеством обновлений безопасности в check_apt а также unattended-upgrade scripts,

общий /usr/lib/update-notifier/apt-check сценарий использует isSecurityUpgrade(ver) функция в строке 40, чтобы определить статус пакета. И кажется, что это работает нормально. Это легко понять, прочитав код функции.

Есть результат check_apt:

root@pandora:/home/sysadmin# /usr/lib/update-notifier/apt-check --human-readable
125 packages can be updated.
4 updates are security updates.

Но unattended-upgrade не включает в себя эти пакеты для обновления.

root@pandora:/home/sysadmin# unattended-upgrade --dry-run -v
Initial blacklisted packages: 
Starting unattended upgrades script
Allowed origins are: ['o=Ubuntu,a=trusty-security', 'o=trusty,a=nginx']
Option --dry-run given, *not* performing real actions
Packages that will be upgraded: 
Packages that are auto removed: ''
Packages auto-removed

Я нашел их вручную (добавив настраиваемый отладочный вывод в эти скрипты).

Это следующие пакеты:

liboxideqt-qmlplugin:amd64/trusty-security 1.9.5-0ubuntu0.14.04.1 upgradeable to 1.17.7-0ubuntu0.14.04.1
liboxideqtcore0:amd64/trusty-security 1.9.5-0ubuntu0.14.04.1 upgradeable to 1.17.7-0ubuntu0.14.04.1
liboxideqtquick0:amd64/trusty-security 1.9.5-0ubuntu0.14.04.1 upgradeable to 1.17.7-0ubuntu0.14.04.1
oxideqt-codecs-extra:amd64/trusty-security 1.9.5-0ubuntu0.14.04.1 upgradeable to 1.17.7-0ubuntu0.14.04.1

Есть мои настройки разрешенного происхождения:

Unattended-Upgrade::Allowed-Origins {
#  "${distro_id}:${distro_codename}";
  "${distro_id}:${distro_codename}-security";
  "${distro_codename}:nginx";
};

Еще одно замечание:

Если мы раскомментируем происхождение "${distro_id}:${distro_codename}"эти обновления будут установлены unattended-upgrade сценарий:

root@pandora:/home/sysadmin# unattended-upgrade --dry-run -v
Initial blacklisted packages: 
Starting unattended upgrades script
Allowed origins are: ['o=Ubuntu,a=trusty', 'o=Ubuntu,a=trusty-security', 'o=trusty,a=nginx']
Option --dry-run given, *not* performing real actions
Packages that will be upgraded: liboxideqt-qmlplugin liboxideqtcore0 liboxideqtquick0 libsmbclient libwbclient0 oxideqt-codecs-extra python-samba samba samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules smbclient

Почему это происходит?

ОБНОВЛЕНИЕ 1:

я обнаружил, что этот пакет добавлен в pkgs_kept_back в check_changes_for_sanity в /usr/bin/unattended-upgrade

есть некоторый код:

if check_changes_for_sanity(cache, allowed_origins,
                                            blacklisted_pkgs):
                # add to packages to upgrade
                pkgs_to_upgrade.append(pkg)
            ...
            else:
                logging.debug("sanity check failed")
                rewind_cache(cache, pkgs_to_upgrade)
                pkgs_kept_back.append(pkg.name)

Почему это происходит?

0 ответов

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