web-dev-qa-db-fra.com

La mise à niveau sans assistance ignore certains packages

Des mises à niveau sans assistance sont configurées, mais certains packages ne sont pas mis à jour automatiquement.

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

La configuration des origines dans /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}";
};

Les paquets en attente proviennent, à ma connaissance, du dépôt officiel ubuntu ( lien Launchpad ), donc je ne vois pas pourquoi il ne serait pas récupéré par unattended-upgrade.

La sortie de la commande dit que

Aucun package n'a trouvé que peut être mis à niveau sans assistance et aucun retrait automatique en attente.

Existe-t-il un cas où un package est récupéré par l'outil, provient d'une source autorisée, mais pour une raison quelconque, il n'est pas autorisé à le mettre à niveau sans surveillance? Quelles autres étapes puis-je faire pour découvrir pourquoi certains packages ne sont pas éligibles?

7
Martin Melka

Je crois que vous manquez 20auto-upgrades et doit d'abord l'implémenter correctement pour voir si cela résout votre problème avant de continuer. Vous pouvez voir que c'est une étape importante dans la documentation Mises à jour automatiques .

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

Si vous avez ce fichier et qu'il ne fonctionne toujours pas, vous pouvez essayer de comprendre ce qui retient les packages. Je préfère Origins-Pattern à Allowed-Origins, qui est différent de la documentation, mais qui a bien fonctionné pour moi:

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

Voici un exemple du composant critique "Pattern" dans 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}";
};

Voici un exemple qui ne restreint pas en fonction du référentiel:

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

Vous ne voudrez que Origin-Patterns ou Allowed-Origins et pas les deux. Ceci est plus clair et documenté dans la documentation de Debian Mises à jour sans assistance .

Essayez d'activer uniquement cela, qui n'est que les mises à jour de sécurité. Testez son fonctionnement et ajoutez vos autres modèles, un par un, jusqu'à ce que vous les ajoutiez et vérifiez que chaque mise à jour ne rompt pas vos tests de fonctionnement à sec.

Je recommanderais également de spécifier Ubuntu et d'écrire des fichiers de configuration complètement différents pour les systèmes Debian, si vous avez un mix.


Assurez-vous que vous ne détenez aucun package pouvant empêcher les mises à jour:

$ Sudo apt-mark showhold

Assurez-vous que vous pouvez installer les mises à jour normalement ou que apt est configuré pour hiérarchiser correctement chaque type de version:

$ 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

Certaines mises à jour nécessiteront un redémarrage de la machine et vous devrez décider si vous le faites manuellement ou autoriser apt à redémarrer la machine à un moment donné lorsque les mises à jour l'exigent.

2
earthmeLon

Une question similaire a été posée auparavant:

La réponse d'acceptation indique:

La plupart de la réponse se trouve dans votre fichier journal des mises à niveau sans assistance, situé à /var/log/unattended-upgrades/unattended-upgrades.log

Voici un exemple:

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

Jetez un œil à cette ligne médiane "Origines autorisées". Cela signifie des référentiels de logiciels. La seule source qui existe est la sécurité. Pas de mises à niveau, pas de rétroportages, pas de PPA, pas de repos tiers.

En d'autres termes, cet exemple de mises à niveau sans assistance fournit uniquement des mises à niveau de sécurité. Rien d'autre.

Vous pouvez ajouter, supprimer ou modifier les origines autorisées (référentiels) via le panneau de configuration des logiciels et des mises à jour, ou en modifiant le fichier de configuration des mises à niveau sans assistance, situé à /etc/apt/apt.conf.d/50unattended-upgrades.

Le reste de la réponse est que Xenial (16.04) a deux ans. Moins de nouvelles mises à jour de sécurité pour les anciens logiciels.


Lecture supplémentaire:

2
WinEunuuchs2Unix

Il vaut la peine de vérifier si vous avez marqué pour conserver les packages, ce qui pourrait empêcher la mise à niveau des packages.

Sudo apt-mark showhold
1
Ketan Patel