Unattended-upgrades comment ça marche

Tags: #<Tag:0x00007f4e4701c628>

Bonjour, je suis sous Debian 13 (trixie) et je trouve intéressant de programmer des mises à jour automatiques sur ma machine. Je précise que c’est un PC de bureau et pas un serveur. J’ai regardé du côté de unattended-upgrades ici :

et ici :

https://std.rocks/fr/gnulinux_debian_auto_update.html

J’ai installé tous les paquets recommandés et je me suis lancé dans la planification. J’ai modifie le fichier /etc/apt/apt.conf.d/20auto-upgrades pour y mettre

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Unattended-Upgrade-Time "18";
APT::Periodic::RandomSleep "0";

J’ai regardé dans /var/log/unattended-upgrades/unattended-upgrades.log ce qui s’était passé à 18h00 et rien du tout. Pour voir si ça fonctionnait vraiment j’ai lancé la commande unattended-upgrades --debug --dry-run et je constate qu’à l’heure où je lance la commande il y a bien

2026-04-28 18:20:22,163 DEBUG loading plugins from ['/etc/unattended-upgrades/plugins/'

Du coup j’ai cherché un peu sur le net et j’ai vu que pour régler précisément l’heure des mises à jour automatiques il fallait modifier /etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer et /etc/systemd/system/timers.target.wants/apt-daily.timer alors je l’ai fait et pour que ce soit pris en compte j’ai lancé la commande

systemctl daemon-reload && systemctl restart apt-daily-upgrade.timer && systemctl restart apt-daily.timer

J’ai surveille les logs dans /var/log/unattended-upgrades/unattended-upgrades.log mais toujours rien à l’heure à laquelle je voulais que se fassent les mises à jour automatiques. Voici le contenu des fichiers que j’ai modifiés.

cat /etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer 
[Unit]
Description=Daily apt upgrade and clean activities
After=apt-daily.timer

[Timer]
OnCalendar=*-*-* 18:14
RandomizedDelaySec=0m
Persistent=true

[Install]
WantedBy=timers.target

et

cat /etc/systemd/system/timers.target.wants/apt-daily.timer 
[Unit]
Description=Daily apt download activities

[Timer]
OnCalendar=*-*-* 6,18:14
RandomizedDelaySec=0h
Persistent=true

[Install]
WantedBy=timers.target

Voilà, merci de m’aider à comprendre.

Essai en suivant la documentation Debian :

https://wiki.debian.org/fr/PeriodicUpdates

Bonjour Clochette et merci de ton attention.

Dans la documentation Debian je lis :

Le fichier de configuration du paquet unattended-upgrades est /etc/apt/apt.conf.d/50unattended-upgrades. Toute personnalisation du fichier doit être placée dans /etc/apt/apt.conf.d/52unattended-upgrades-local (consulter le README du paquet pour les détails).

Où est-ce que je trouve le README du paquet unattended-upgrades ?

> dpkg -L unattended-upgrades|grep -i readme
/usr/share/doc/unattended-upgrades/README.md.gz

Ok, merci, c’est décompressé et lu mais je ne comprends pas davantage ce qu’il faut faire avec le fichier /etc/apt/apt.conf.d/50unattended-upgrades. Est-ce qu’il faut que j’édite le fichier /etc/apt/apt.conf.d/52unattended-upgrades-local et que j’y colle le contenu de /etc/apt/apt.conf.d/50unattended-upgrades ?

Non tu mettra dans 52unattended-upgrades-local ce qui n’est pas pris en charge, par exemple si tu utilise des dépôts particulier non renseigné dans le fichier de départ.

Essai déjà en mode interactif et affine après coup :

dpkg-reconfigure -plow unattended-upgrades

Salut Clochette, j’avais commencé par faire un

dpkg-reconfigure -plow unattended-upgrades

Qu’est-ce qui se passe quand je tape cette commande ?
Quel fichier de configuration est pris en compte ?
Est-ce que les modifications que j’ai faites dans les fichiers apt-daily-upgrade.timer et apt-daily.timer seront ignorées ?

Voici mon fichier /etc/apt/apt.conf.d/50unattended-upgrades dans lequel je n’ai fait que dé-commenter quelques lignes. Je ne mets pas l’intégralité, je n’ai pas touché au reste.

cat /etc/apt/apt.conf.d/50unattended-upgrades 
// Unattended-Upgrade::Origins-Pattern controls which packages are
// upgraded.
//
// Lines below have the format "keyword=value,...".  A
// package will be upgraded only if the values in its metadata match
// all the supplied keywords in a line.  (In other words, omitted
// keywords are wild cards.) The keywords originate from the Release
// file, but several aliases are accepted.  The accepted keywords are:
//   a,archive,suite (eg, "stable")
//   c,component     (eg, "main", "contrib", "non-free")
//   l,label         (eg, "Debian", "Debian-Security")
//   o,origin        (eg, "Debian", "Unofficial Multimedia Packages")
//   n,codename      (eg, "jessie", "jessie-updates")
//     site          (eg, "http.debian.net")
// The available values on the system are printed by the command
// "apt-cache policy", and can be debugged by running
// "unattended-upgrades -d" and looking at the log file.
//
// Within lines unattended-upgrades allows 2 macros whose values are
// derived from /etc/debian_version:
//   ${distro_id}            Installed origin.
//   ${distro_codename}      Installed codename (eg, "buster")
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).
        // Software will be the latest available for the named release,
        // but the Debian release itself will not be automatically upgraded.
	"origin=Debian,codename=${distro_codename}-updates";
	"origin=Debian,codename=${distro_codename}-proposed-updates";
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
	"o=Debian Backports,n=${distro_codename}-backports,l=Debian Backports";

Il y a une chose que j’ai du mal à comprendre. Il est dit dans le tuto que j’ai consulté en premier que le réglage des heures de mises à jour automatiques se fait dans le fichier /etc/apt/apt.conf.d/20auto-upgrades et je lis dans un autre tutoriel que pour définir les horaires de mises à jour il faut modifier les fichiers apt-daily-upgrade.timer et systemctl restart apt-daily.timer et lancer systemctl daemon-reload && systemctl restart apt-daily-upgrade.timer && systemctl restart apt-daily.timer pour quel les modifications soient prises en compte.
Voici mon fichier /etc/apt/apt.conf.d/20auto-upgrades

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

D’après ce que j’ai compris, avec ce fichier, tous les jours entre 9h00 et 9h10 les mises à jour vont se faire automatiquement. Mais je ne suis pas sûr que c’est bien comme ça que ça fonctionne. En tout cas, en regardant les log dans /var/log/unattended-upgrades/unattended-upgrades.log il ne s’est rien passé ce matin entre 9h00 et 9h10.

Tu vas reconfigurer le paquet, L’argument --priority=low force l’affichage de toutes les options possibles.

Normalement suite au question tu n’aurait même pas du le faire, mais admettons, tu as donc configuré les sources qui seront pris en comptes.

Voilà aussi pourquoi le .local peux être utile si tu as des dépôts non pris en charge et éviter ainsi que tes modifs soit écrasées après une mise à jour.

Normalement c’est tout, as-tu essayé à ce moment là un lancement à vide ?

unattended-upgrades --debug --dry-run 

Pour les timer systemd tu n’as pas normalement à les créer ils existent déjà , il te suffit en générale de faire un simple :

systemctl edit apt-daily-upgrade.timer
[Timer]
OnCalendar=
OnCalendar=09:00
RandomizedDelaySec=600
systemctl edit apt-daily.timer

et y mettre

[Timer]
OnCalendar=
OnCalendar=09:00
RandomizedDelaySec=600

Cette méthode d’édition ajout un fichier dans le dossier .d de l’unit service et évite ainsi de devoir recharger le démon systemd (ça évite aussi les écrasement lors de mise à jour, merci le principe d’overide).

Bien entendu penses à bien vérifier que tu blacklist ce qui ne doit surtout pas être upgrder de cette manière et à vérifier si tu utilises le système d’alternatives qu’il n’y est pas un couac (j’ai eu le cas avec des composants php sur des serveurs :sweat_smile: , idem si tu as des trucs avec des confirmations il te faudra modifier les fichier debconf adéquats )
Bref essai à vide et vérifie que ce soit bon.

PS : je suppose que la documentation Debian sur leur wiki est exhaustive de toute personnalisation tel que changement d’horaire, car habituellement tout est paramétrer pour se déclencher à 3H du matin avec un temps de latence relativement élevé.

Oui, je me suis dit que comme je fais ça sur mon PC de bureau où les sources sont trixie trixie-updates trixie-backports trixie-security autant que la mise à jour automatique fasse la même chose qu’un uptade et un upgrade.

cat /etc/apt/sources.list.d/debian.sources 
# Modernized from /etc/apt/sources.list
Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# Modernized from /etc/apt/sources.list
Types: deb
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# Modernized from /etc/apt/sources.list
#Types: deb
#URIs: http://deb.debian.org/debian/
#Suites: trixie-updates
#Components: main contrib non-free non-free-firmware
#Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# Modernized from /etc/apt/sources.list
#Types: deb
#URIs: http://deb.debian.org/debian/
#Suites: trixie-backports
#Components: main contrib non-free non-free-firmware
#Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

En tout cas rien d’exotique dans mes sources.

unattended-upgrades --debug --dry-run 
loading plugins from ['/etc/unattended-upgrades/plugins/', '/usr/share/unattended-upgrades/plugins']
Checking if system is running on battery is skipped. Please install powermgmt-base package to check power status and skip installing updates when the system is running on battery.
Démarrage du script de mise à niveau automatique
Les origines permises sont : origin=Debian,codename=trixie-updates, origin=Debian,codename=trixie-proposed-updates, origin=Debian,codename=trixie,label=Debian, origin=Debian,codename=trixie,label=Debian-Security, origin=Debian,codename=trixie-security,label=Debian-Security, o=Debian Backports,n=trixie-backports,l=Debian Backports
Initial blacklist: 
Initial whitelist (not strict): 
Using (^linux-.*-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^kfreebsd-.*-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^gnumach-.*-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^.*-modules-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^.*-kernel-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^linux-.*-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^kfreebsd-.*-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^gnumach-.*-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^.*-modules-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$|^.*-kernel-[1-9][0-9]*\.[0-9]+\.[0-9]+-[0-9]+(-.+)?$) regexp to find kernel packages
Using (^linux-.*-6\.12\.74\+deb13\+1\-amd64$|^kfreebsd-.*-6\.12\.74\+deb13\+1\-amd64$|^gnumach-.*-6\.12\.74\+deb13\+1\-amd64$|^.*-modules-6\.12\.74\+deb13\+1\-amd64$|^.*-kernel-6\.12\.74\+deb13\+1\-amd64$|^linux-.*-6\.12\.74\+deb13\+1\-amd64$|^kfreebsd-.*-6\.12\.74\+deb13\+1\-amd64$|^gnumach-.*-6\.12\.74\+deb13\+1\-amd64$|^.*-modules-6\.12\.74\+deb13\+1\-amd64$|^.*-kernel-6\.12\.74\+deb13\+1\-amd64$) regexp to find running kernel packages
pkgs that look like they should be upgraded: 
Fetched 0 B in 0s (0 B/s)                                                                                                            
fetch.run() result: 0
Packages blacklist due to conffile prompts: []
Aucun paquet à mettre à niveau automatiquement ni à supprimer automatiquement
The list of kept packages can't be calculated in dry-run mode.
upgrade result: True Aucun paquet à mettre à niveau automatiquement ni à supprimer automatiquement

Oui, les fichiers existent déjà. Je me rends compte que j’avais peut-être oublié de dé-commenter les lignes pour que ce soit effectif. Du coup j’ai dé-commenté

Timer]
OnCalendar=*-*-* 13:35
RandomizedDelaySec=0m
Persistent=true

dans les deux fichiers et j’ai sauvegardé. Ça me renvoie ça :

root@dell:~# systemctl edit apt-daily.timer
Found modifications outside of the staging area, which would be discarded.
/etc/systemd/system/apt-daily.timer.d/override.conf: after editing, new contents are empty, not writing file.
root@dell:~# systemctl edit apt-daily.timer
/etc/systemd/system/apt-daily.timer.d/override.conf: after editing, new contents are empty, not writing file.
root@dell:~# systemctl edit apt-daily-upgrade.timer
Found modifications outside of the staging area, which would be discarded.
/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf: after editing, new contents are empty, not writing file.
root@dell:~# systemctl edit apt-daily-upgrade.timer
/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf: after editing, new contents are empty, not writing file.

Pas très compréhensible pour moi…

Donc cette partie est fonctionnelle.

Je ne saurais t’en dire plus mais apparement il n’a rien créer car il n’y avait rien dedans :confused:

Lorsque tu utilise la commande systemctl edit, tu va ouvrir non pas le fichier directement mas permettre la création d’un fichier override dans lequel tu mettra les valeurs que tu veux, l’autre tu le laisse tranquille :wink:

La seule chose que je n’ai pas précisé c’est le restart de l’unit systemd.

chez moi par exemple j’a ça :

 root  ~  tree /etc/systemd/system/
/etc/systemd/system/
├── apt-daily.timer.d
│   └── override.conf
├── apt-daily-upgrade.timer.d
│   └── override.conf
 root  ~  systemctl status apt-daily.timer 
● apt-daily.timer - Daily apt download activities
     Loaded: loaded (/lib/systemd/system/apt-daily.timer; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/apt-daily.timer.d
             └─override.conf
     Active: active (waiting) since Wed 2026-04-29 14:14:47 CEST; 9min ago
    Trigger: Thu 2026-04-30 09:02:59 CEST; 18h left
   Triggers: ● apt-daily.service

avril 29 14:14:47 2-000007 systemd[1]: Stopped Daily apt download activities.
avril 29 14:14:47 2-000007 systemd[1]: Stopping Daily apt download activities.
avril 29 14:14:47 2-000007 systemd[1]: Started Daily apt download activities.

 root  ~  systemctl status apt-daily.service
● apt-daily.service - Daily apt download activities
     Loaded: loaded (/lib/systemd/system/apt-daily.service; static; vendor preset: enabled)
     Active: inactive (dead) since Wed 2026-04-29 14:14:26 CEST; 10min ago
TriggeredBy: ● apt-daily.timer
       Docs: man:apt(8)
   Main PID: 218493 (code=exited, status=0/SUCCESS)

avril 29 14:14:25 2-000007 systemd[1]: Starting Daily apt download activities...
avril 29 14:14:26 2-000007 systemd[1]: apt-daily.service: Succeeded.
avril 29 14:14:26 2-000007 systemd[1]: Finished Daily apt download activities.

Si tu modifie les unit systemd il faut à chaque fois recharger le démon et redémarré le service, c’est pas pratique et ça peux être écrasé lors de mise à jour :confused:

PS : je vois pas trop où tu bloque en ce moment, peux-tu me dire ce que tu a modifié au totale comme fichier et qu’est-ce qui est comme à l’origine lorsque t’installe les paquets ?

Salut Clochette, d’abord il faut que je te dise que j’ai réussi à faire fonctionner unattended-upgrades à l’heure que je lui avais indiquée. Je ne maîtrise pas encore tout bien mais c’est en bonne voix. J’y reviendrai. D’abord je réponds à ta question.

Dans l’ordre j’ai commencé par modifier les sources dans /etc/apt/apt.conf.d/50unattended-upgrades. Ensuite, comme mon ordi n’est pas un serveur et ne tourne pas 24 heures sur 24 j’ai modifié le fichier /etc/apt/apt.conf.d/20auto-upgrades pour que le processus d’installation des mises à jour se fasse à une heure de la journée où ma machine est allumée. Pour moi c’est 7h00 le matin quand je regarde la météo et le boulot que j’ai à faire pour la journée. Par curiosité j’ai voulu voir si ça fonctionnait bien alors en revenant le midi j’ai jeté un oeil dans /var/log/unattended-upgrades/unattended-upgrades.log et j’ai vu que unattended-upgrades n’avait pas fonctionné dans la matinée.
À partir de là j’ai décidé de modifier les fichiers /etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer et /etc/systemd/system/timers.target.wants/apt-daily.timer avec nano et de lancer systemctl daemon-reload && systemctl restart apt-daily-upgrade.timer && systemctl restart apt-daily.timer
J’ai regardé à nouveau dans /var/log/unattended-upgrades/unattended-upgrades.log à la fin de la journée et j’ai vu que rien ne s’était passé à l’heure à laquelle j’avais demandé que les mises à jour soient faites.

Comme tu l’as vu systemctl edit apt-daily-upgrade.timer et systemctl edit apt-daily.timer n’ont pas l’air de très bien fonctionner chez moi et n’écrivent aucun fichier override

Found modifications outside of the staging area, which would be discarded.
/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf: after editing, new contents are empty, not writing file.

Voilà où j’en étais arrivé avant de retourner modifier les fichiers
/etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer et /etc/systemd/system/timers.target.wants/apt-daily.timer avec nano aujourd’hui pour me rendre compte en regardant les log que ça avait fonctionné. Pourquoi ça n’a pas fonctionné hier et qu’aujourd’hui ça marche… Je ne sais pas…

Peut-être qu’entre temps tu a corrigé une coquille, parfois une simple erreur de syntaxe peux jouer :wink:

Du coup je te souhait un bon courage pour approfondir le comportement et le régler au petits oignions, pense à bien mettre en liste noire ce qui est sensible et à ajouter un fichier .local pour tous ce qui est extérieur au dépôts Debian (par exemple chez moi le navigateur Brave)

Je vais surveiller les log ces prochains jours pour voir si ça fonctionne.

Tu peux me donner un exemple de ce que peut contenir un fichier .local et un exemple de liste noire ?

C’est

apt-daily-upgrade.timer

le nom du fichier et non pas

apt-daily.timer

Bonjour Zargos, je crois qu’il faut éditer les deux. Il y en a un pour les update et l’autre pour les upgrade. De toute façon, sur ma machine, que j’édite apt-daily.timer ou apt-daily-upgrade.timer ça me renvoie la même chose.

systemctl edit apt-daily-upgrade.timer
Found modifications outside of the staging area, which would be discarded.
/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf: after editing, new contents are empty, not writing file.

qu’y-a-t-il dans

/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf

avec cat /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf

en fait non.

  • apt-daily.timer: c’est pour les activités de download
  • apt-daily-upgrade.timer: c’est pour les upgrade et les activités de nettoyage.

Je ne l’ai pas trouvé.

tree /etc/systemd/system/
/etc/systemd/system/
├── bluetooth.target.wants
│   └── bluetooth.service -> /lib/systemd/system/bluetooth.service
├── dbus-fi.w1.wpa_supplicant1.service -> /lib/systemd/system/wpa_supplicant.service
├── dbus-org.bluez.service -> /lib/systemd/system/bluetooth.service
├── dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service
├── dbus-org.freedesktop.ModemManager1.service -> /lib/systemd/system/ModemManager.service
├── dbus-org.freedesktop.nm-dispatcher.service -> /lib/systemd/system/NetworkManager-dispatcher.service
├── dbus-org.freedesktop.timesync1.service -> /lib/systemd/system/systemd-timesyncd.service
├── display-manager.service -> /lib/systemd/system/lightdm.service
├── getty.target.wants
│   └── getty@tty1.service -> /lib/systemd/system/getty@.service
├── graphical.target.wants
│   ├── accounts-daemon.service -> /lib/systemd/system/accounts-daemon.service
│   ├── power-profiles-daemon.service -> /lib/systemd/system/power-profiles-daemon.service
│   ├── switcheroo-control.service -> /usr/lib/systemd/system/switcheroo-control.service
│   └── udisks2.service -> /lib/systemd/system/udisks2.service
├── hibernate.target.wants
│   └── grub-common.service -> /usr/lib/systemd/system/grub-common.service
├── hybrid-sleep.target.wants
│   └── grub-common.service -> /usr/lib/systemd/system/grub-common.service
├── multi-user.target.wants
│   ├── anacron.service -> /lib/systemd/system/anacron.service
│   ├── avahi-daemon.service -> /lib/systemd/system/avahi-daemon.service
│   ├── blueman-mechanism.service -> /lib/systemd/system/blueman-mechanism.service
│   ├── console-setup.service -> /lib/systemd/system/console-setup.service
│   ├── cron.service -> /lib/systemd/system/cron.service
│   ├── cups-browsed.service -> /lib/systemd/system/cups-browsed.service
│   ├── cups.path -> /lib/systemd/system/cups.path
│   ├── cups.service -> /lib/systemd/system/cups.service
│   ├── e2scrub_reap.service -> /lib/systemd/system/e2scrub_reap.service
│   ├── exim4.service -> /usr/lib/systemd/system/exim4.service
│   ├── grub-common.service -> /usr/lib/systemd/system/grub-common.service
│   ├── ModemManager.service -> /lib/systemd/system/ModemManager.service
│   ├── networking.service -> /lib/systemd/system/networking.service
│   ├── NetworkManager.service -> /lib/systemd/system/NetworkManager.service
│   ├── remote-fs.target -> /lib/systemd/system/remote-fs.target
│   ├── ssh.service -> /lib/systemd/system/ssh.service
│   ├── unattended-upgrades.service -> /usr/lib/systemd/system/unattended-upgrades.service
│   └── wpa_supplicant.service -> /lib/systemd/system/wpa_supplicant.service
├── network-online.target.wants
│   ├── networking.service -> /lib/systemd/system/networking.service
│   └── NetworkManager-wait-online.service -> /lib/systemd/system/NetworkManager-wait-online.service
├── printer.target.wants
│   └── cups.service -> /lib/systemd/system/cups.service
├── sockets.target.wants
│   ├── avahi-daemon.socket -> /lib/systemd/system/avahi-daemon.socket
│   └── cups.socket -> /lib/systemd/system/cups.socket
├── sshd.service -> /lib/systemd/system/ssh.service
├── sshd.service.wants
│   └── sshd-keygen.service -> /usr/lib/systemd/system/sshd-keygen.service
├── sshd@.service.wants
│   └── sshd-keygen.service -> /usr/lib/systemd/system/sshd-keygen.service
├── ssh.service.wants
│   └── sshd-keygen.service -> /usr/lib/systemd/system/sshd-keygen.service
├── ssh.socket.wants
│   └── sshd-keygen.service -> /usr/lib/systemd/system/sshd-keygen.service
├── suspend.target.wants
│   └── grub-common.service -> /usr/lib/systemd/system/grub-common.service
├── suspend-then-hibernate.target.wants
│   └── grub-common.service -> /usr/lib/systemd/system/grub-common.service
├── sysinit.target.wants
│   ├── apparmor.service -> /lib/systemd/system/apparmor.service
│   ├── keyboard-setup.service -> /lib/systemd/system/keyboard-setup.service
│   ├── systemd-pstore.service -> /lib/systemd/system/systemd-pstore.service
│   └── systemd-timesyncd.service -> /lib/systemd/system/systemd-timesyncd.service
└── timers.target.wants
    ├── anacron.timer -> /lib/systemd/system/anacron.timer
    ├── apt-daily.timer -> /lib/systemd/system/apt-daily.timer
    ├── apt-daily-upgrade.timer -> /lib/systemd/system/apt-daily-upgrade.timer
    ├── dpkg-db-backup.timer -> /lib/systemd/system/dpkg-db-backup.timer
    ├── e2scrub_all.timer -> /lib/systemd/system/e2scrub_all.timer
    ├── exim4-base.timer -> /usr/lib/systemd/system/exim4-base.timer
    ├── fstrim.timer -> /lib/systemd/system/fstrim.timer
    ├── fwupd-refresh.timer -> /lib/systemd/system/fwupd-refresh.timer
    ├── locate.timer -> /usr/lib/systemd/system/locate.timer
    ├── logrotate.timer -> /lib/systemd/system/logrotate.timer
    └── man-db.timer -> /lib/systemd/system/man-db.timer

18 directories, 60 files

Pour une liste noire par exemple avec mariadb :

Unattended-Upgrade::Package-Blacklist {
    "mariadb-server";
};

pour un dépôts non standard comme sur mon laptop (par contre je suis pas en Debian avec ce laptop :innocent: :

Unattended-Upgrade::Origins-Pattern {
    "origin=Brave Software,codename=stable";
};

Je me demande si le fait d’avoir installé mate-indicator-applet gnome-packagekit apt-config-auto-update sur cette machine ne crée pas de conflits.

et un ls -a? des fois qu’il y a ait un fichier temporaire d’édition?