Quand courir manuellement, Sudo unattended-upgrade
ne trouve rien à mettre à niveau:
No packages found that can be upgraded unattended and no pending auto-removals
Mais faire Sudo apt update
Auparavant change miraculeusement la situation:
Packages that will be upgraded: ...
...
All upgrades installed
La configuration dans /etc/apt/apt.conf.d/20auto-upgrades
contient APT::Periodic::Update-Package-Lists "1";
comme ça devrait faire. Ceci est probablement utilisé uniquement par cron
, qui pourrait expliquer la liste des packages obsolètes.
En outre, le mec de unattended-upgrade
dit:
Ce script est le backend pour l'option APT :: périodique :: Option de mise à niveau sans surveillance et conçue pour être exécutée à partir de cron (par exemple via /etc/cron.daily/apt)
Est unattended-upgrades
est entièrement dépendant de cron
, et si cela signifie-t-il que cela ne devrait pas être exécuté à partir d'un script?
Edit: TLDR. Running unattended-upgrades
extérieur cron
, dans une coquille, ne mène rien, même si la configure a l'air correcte. Apparemment, c'est parce qu'un travail distinct cron
est responsable de la mise à jour de la liste des packages. Ce comportement est-il correct?
La réponse semble être qu'un succès unattended-upgrade
dépend effectivement une mise à jour récente des listes de packages (équivalent à apt update
). Il repose sur cet être fait soit par cron
(chèque /etc/cron.daily/
, /etc/cron.d/
) ou plus probablement un systemd
minuterie (do Sudo systemctl list-timers
).
Ce paquet sera non lui-même déclencher la mise à jour, ni vérifier que les listes de packages sont à jour. S'ils ne le sont pas, il va simplement écrire sur son journal qu'il n'y a rien à installer.
partiellement correct
Les mises à niveau sans surveillance de 16,04 ans et plus ont fallu sur le cron pour déclencher le service combiné de mise à jour/mise à niveau.
Cependant, cela a changé: 18.04 utilise des minuteries SystemD au lieu de cron. Les minuteries de mise à jour et de mise à niveau sont indépendantes et peuvent courir de nombreuses heures d'intervalle. C'est la cause la plus probable (et la plus attendue) des packages apparaissant miraculeusement - ils étaient probablement téléchargés/miroirs après la mise à jour précédente.
Vous pouvez exécuter le unattended-upgrades
commande de l'invite d'une coquille, et elle fera exactement le même travail que si vous êtes déclenché par Cron (16,04 ans et plus) ou SystemD Timer (18.04 et plus récent).
Comme il est contrôlé par SystemD, vous pouvez utiliser n'importe quel déclencheur que vous souhaitez démarrer la mise à jour quotidienne et la mise à niveau - vous n'êtes pas limité à l'utilisation des minuteries intégrées. Vous pouvez, par exemple, commencez-les 4 minutes après la mise en réseau, ou définissez les minuteries à exécuter à une heure standard pendant le déjeuner, ou tout ce que vous voulez satisfaire à vos besoins.