I have to admit, I really really hate apt-listchanges. If I'm going to do a huge dist-upgrade, I want to just leave the computer there for a few hours. The asker of this serverfault question had a similar goal in mind, bu after implementing all of the suggestions in that post, I was still hit by apt-listchanges
.
Why is it so difficult to achieve non-interactivity with apt
, an otherwise excellent program, given that the Unix philosophy aspires to it?
I am hoping the changes I made to /etc/apt/listchanges.conf
will help, but I want suggestions as to how to reliably do upgrades without any interaction whatsoever.
[apt]
frontend=none
email_address=root
confirm=0
save_seen=/var/lib/apt/listchanges.db
which=news
This is the command I used was
DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::="--force-confnew" \
--force-yes \
-fuy \
dist-upgrade
I also added the following lines to /etc/dpkg/dpkg.cfg
force-confold
force-confdef
Best Answer
As you found and set in your config,
apt-listchanges
should not prompt if you set the frontend tonone
. You can also set the environment variableAPT_LISTCHANGES_FRONTEND=none
to achieve the same thing.It sounds like what you really want to do is use the
unattended-upgrades
package. It handles everything for you: disablingapt-listchanges
, setting the frontend tononinteractive
, checking for and avoiding conffile prompts, etc. If nothing else, the contents of the Python script/usr/bin/unattended-upgrades
should answer your questions about how it does its magic.