désactiver apt-listchanges (et autres éléments interactifs) pendant les mises à niveau (de manière fiable)

15

Je dois admettre que je déteste vraiment vraiment les apt-listchanges. Si je vais faire une énorme mise à niveau dist, je veux juste laisser l'ordinateur là pendant quelques heures. Le demandeur de cette question de panne de serveur avait un objectif similaire à l'esprit, mais après avoir mis en œuvre toutes les suggestions de ce message, j'ai toujours été frappé apt-listchanges.

Pourquoi est-il si difficile de réaliser la non-interactivité avec apt, un programme par ailleurs excellent, étant donné que la philosophie Unix y aspire?

J'espère que les modifications que j'ai apportées /etc/apt/listchanges.confaideront, mais je veux des suggestions sur la façon de faire des mises à niveau de manière fiable sans aucune interaction.

[apt]
frontend=none
email_address=root
confirm=0
save_seen=/var/lib/apt/listchanges.db
which=news

Voici la commande que j'ai utilisée

DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::="--force-confnew" \
--force-yes \
-fuy \
dist-upgrade

J'ai également ajouté les lignes suivantes à /etc/dpkg/dpkg.cfg

force-confold
force-confdef
ixtmixilix
la source
2
Si vous n'aimez pas apt-listchanges, pourquoi l'installez-vous?
Gilles 'SO- arrête d'être méchant'
3
Ne le supprimez- apt-get purge apt-listchangesvous pas en vous aidant?
daisy
Warl0ck a raison. Désinstallez-le. J'utilise apt-get de manière non interactive tout le temps.
bahamat
4
il est venu pré-installé avec mon dernier debian ... d'oh!
ixtmixilix
1
Oui, je déteste vraiment que cela semble être le défaut.
UpTheCreek

Réponses:

11

Comme vous l'avez trouvé et défini dans votre configuration, apt-listchangesvous ne devez pas demander si vous définissez le frontend sur none. Vous pouvez également définir la variable d'environnement APT_LISTCHANGES_FRONTEND=nonepour obtenir la même chose.

Il semble que ce que vous voulez vraiment faire, c'est utiliser le unattended-upgradespackage. Il gère tout pour vous: désactiver apt-listchanges, définir le frontend noninteractive, vérifier et éviter les invites de conffile, etc. Si rien d'autre, le contenu du script Python /usr/bin/unattended-upgradesdevrait répondre à vos questions sur la façon dont il fait sa magie.

Jim Paris
la source
Comment évite-t-il les invites de conffile? Les ignore-t-il simplement en conservant votre configuration ou en la remplaçant?
Natalie Adams
Si votre aptconfig contient --force-confoldou --force-confnewdans DPkg::Options, ils se comportent comme prévu. Sinon, un package qui déclencherait une invite de conffile n'est pas mis à niveau et un e-mail est envoyé (si l'e-mail est configuré dans unattended-upgrades). Si l'e-mail n'est pas disponible, il est connecté sous /var/log/unattended-upgrades.
Jim Paris