APT Upgrade – Disable apt-listchanges and Other Interactive Prompts

aptupgrade

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 to none. You can also set the environment variable APT_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: disabling apt-listchanges, setting the frontend to noninteractive, 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.

Related Question