APT – Viewing Changelogs for To-Be-Upgraded Packages

apt

This question describes how to get the changelog for a given package. However, it's the whole changelog.

What I'd like is a way to see what will be changed in whatever I'm about to upgrade. For example, I was imagining something like:

$ sudo apt-get upgrade --show-changelogs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  foo
    -- adds the bar feature for better snazziness
    -- removes the deprecated baz feature

1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,864 kB of archives.
After this operation, 285 kB disk space will be freed.
Do you want to continue [Y/n]? 

Unfortunately, I don't see anything like that in the man pages for apt-get. Does this or something similar exist?

UPDATE: I've written a short blog post talking about apt-listchanges and Debian changelogs in a little more depth that incorporates some of the feedback in this question.

Best Answer

The nearest thing to what you are looking for can be had with a package called apt-listchanges, which will give you a changelog summary when you upgrade packages. You can set it up so the changelog notes appear in the terminal directly after apt-get downloads the upgrade (see below explanation and screenshot), but before you install it.

You can install the program with

sudo apt-get install apt-listchanges

and then set it up with

sudo dpkg-reconfigure apt-listchanges

The setup file created is /etc/apt/listchanges.conf.

My setup has the changelog information being shown directly as text in the terminal (stdout), which is just what you wanted. I find this is better than having a pager load up the information. I just have changelogs selected in my conf file, so the news about the package is not shown. I have also set it up to email root the excerpt of the changelog. You need to set up local email by referencing my article here if you want to use this feature.

This is my /etc/apt/listchanges.conf:

[apt]
frontend=text
email_address=root
confirm=1
save_seen=/var/lib/apt/listchanges.db
which=changelogs

A screenshot of the upgrade procedure when apt-listchanges is installed. I have set it to ask me for install confirmation after reading the changelog excerpt.

enter image description here

For more information see man apt-listchanges and the Ubuntu manpages online.