désactiver apt-listchanges (et d'autres choses interactives) pendant les mises à niveau (de manière fiable)

Je dois admettre que je déteste vraiment les changements d'apt-list. Si je vais faire une énorme dist-upgrade, je veux juste laisser l'ordinateur là pendant quelques heures. Le requestur de cette question de défaut de server avait un objective similaire à l'esprit, après avoir mis en œuvre toutes les suggestions de ce post, j'étais toujours touché par apt-listchanges .

Pourquoi est-il si difficile d'get une non-interactivité avec apt , un programme autrement excellent, étant donné que la philosophie Unix y aspire?

J'espère que les changements que j'ai apportés à /etc/apt/listchanges.conf aideront, mais je veux des suggestions quant à la façon fiable de faire des mises à niveau sans aucune interaction que ce soit.

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

C'est la command que j'ai utilisée était

 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 

Comme vous l'avez trouvé et configuré dans votre configuration, apt-listchanges ne devrait pas vous indiquer si vous définissez le frontend sur none . Vous pouvez également définir la variable d'environnement APT_LISTCHANGES_FRONTEND=none pour get la même chose.

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