How do you see what packages are available for update

FreeBSD user joining your ranks. I’ve been asked to look after an Ubuntu Server running 10.04 LTS.

I see from /usr/lib/update-notifier/update-motd-updates-available that there are a number of updates on the server however I do not see a way to tell which will be updated.

Would anyone be able to point me in the right direction so as I can see which packages will get updated when I run apt-get upgrade?


Can’t answer my own question at the moment so throwing this in here for the time being:

Along with the apt-get upgrade --dry-run suggested below,
/usr/lib/update-notifier/apt-check -p will list all packages that have updates available.

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

As of now (Ubuntu 16.04) you can use apt list with the --upgradable flag;

sudo apt update
apt list --upgradable

and you will get a list with all upgradable packages.

Solution 2

You could install aptitude if it isn’t already installed. It’s a great tool for managing packages in a headless setup.

enter image description here

Otherwise if you just want to see what’s going to happen when you run something, use the --dry-run argument and it won’t actually do anything, it’ll just tell you what it would do:

From the apt-get man page

-s, --simulate, --just-print, --dry-run, --recon, --no-act
          No action; perform a simulation of events that would occur but do
          not actually change the system. Configuration Item:

          Simulate prints out a series of lines each one representing a dpkg
          operation, Configure (Conf), Remove (Remv), Unpack (Inst). Square
          brackets indicate broken packages with and empty set of square
          brackets meaning breaks that are of no consequence (rare).

Add the option to the command this way

apt upgrade --dry-run

Solution 3

Below command will show you the list of installed packages which has an update available in the repositories.

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p

Solution 4

Another alternative would be to use aptitude with a search term:

aptitude search '~U'

(Note the uppercase ‘U’)

That means: “search for all packages that are installed and can be upgraded”. Reference: aptitude user’s manual

By default, aptitude search shows for each package its name, description and a few flags, but you could also adapt the output to your needs. For example, to list only the package names, the command would be:

aptitude search -F '%p' --disable-columns '~U'

(--disable-columns avoids padding whitespace at the end of the lines)

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply