Я нашел, что существует различие между количеством обновлений системы защиты в 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)
Почему это происходит?