List Upgradable Packages With apt Command in Ubuntu

The apt command is used for package management in Debian and Ubuntu. While you are probably already familiar with the install and remove options, apt provides a few extra features as well.

One of them is the ability to see all the upgradable packages on your system. And to display them, all you have to do is to use this command in the terminal:

apt list --upgradable

As you can notice, you don’t even need sudo to list the updatable packages. It just lists the packages that can be updated. It doesn’t update them.

In fact, the apt command adds this hint when you run the sudo apt update command to update the local package repository cache.

Fetched 1,243 kB in 17s (71.4 kB/s)           
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
30 packages can be upgraded. Run 'apt list --upgradable' to see them.

I don’t recall any similar direct option in the older apt-get command to list all the upgradable packages. That’s one of the several new features apt has added on top of the older apt-get command.

Let’s talk about it in a bit more detail.

Listing all the upgradable packages

What you should know here is that you only get to list the updates available through the APT package manager. So, if you have added PPAs or external repositories to your system’s sources.list, you’ll see the updates from them.

But you won’t get updates for AppImage, Flatpak, Snap or some other packaging formats here.

In other words, it works with apt packages only.

So, to list all the upgradable packages on your Ubuntu or Debian system, you should update the local package cache first:

sudo apt update

And then your system will be aware of the available package updates. The apt command tells you how many packages can be upgraded at the end of the update command:

apt list --upgradable

You should see an output like this:

[email protected]:~$ apt list --upgradable 
Listing... Done
apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2]
brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]
evolution-data-server-common/jammy-updates,jammy-updates 3.44.2-0ubuntu1 all [upgradable from: 3.44.1-0ubuntu2]
evolution-data-server/jammy-updates 3.44.2-0ubuntu1 amd64 [upgradable from: 3.44.1-0ubuntu2]
brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]

For example, It shows that I have Brave browser version 1.40.107 installed on the system, and version 1.40.113 is available.

What can you do with this information? Let me share a few things I can think of.

Upgrade all the packages

This is probably what most casual Ubuntu users do. You can upgrade all the upgradable packages with the following command:

sudo apt upgrade

It lists what packages will be upgraded and then asks to confirm the upgrade by pressing enter or Y.

sudo apt upgrade -y

Simulate an upgrade (but don’t upgrade any packages)

This is what people did before the apt list command. With the simulate option, you don’t actually make any changes. It just shows what packages will be installed or upgraded if you run the upgrade.

apt -s upgrade

You don’t need to use sudo (even though I have used it in the screenshot below).

sudo apt --only-upgrade install package_name

Actually, if you run the apt install command on an already installed package for which an update is available, it will upgrade the package.

With the --only-upgrade flag, you ensure that a package is only upgraded (if it is already installed). It won’t install the given package if it is not already installed.

You can also upgrade selected few packages by providing their name:

sudo apt --only-upgrade install package1 package2

You can also do the opposite and hold selected packages from the upgrade.

sudo apt-mark hold package_name

With that, the given package won’t be upgraded when you upgrade all the system packages.

You can remove the hold with this command:

sudo apt-mark unhold package_name

Does it show the kernel upgrades?

This is kind of tricky.

When you run the ‘apt list –upgradable’ command it shows all the packages that can be upgraded.

But if there are new kernel versions available, they might not be shown since the kernel package name starts with linux-headers-x-y. It’s because the system treats them as new packages, not an upgrade on already installed package linux-headers-a-b.

However, you would still see “linux-generic-hwe” kind of package in the list of upgradable packages. Because that package will be upgraded (with the newer kernel).

Conclusion

The ability to list upgradable packages is one of the several new features the apt command brought over the older apt-get command. For more on this topic, you can read my article explaining the difference between the apt and apt-get commands.

As a desktop user, I don’t always check the packages that can be upgraded. I go for the upgrade straightaway. However, when I am managing a server, I prefer to see what updates are available and then decide whether or not I am going for an upgrade.

How about you? Do you see a good use for this feature for yourself?


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Server Status

Aradippou Chat Larnaca Nicosia

Chat Links

Official Links.

Chat.

Alternative Mirror Links.

1. KiwiIRC 1.
2. KiwiIRC 2.

Other Web Clients.

1. IrcCloud.

Recent Posts

Related Posts:

Archives

Follow me on Mastodon

Super Club Radio

Mighty Deals

CyIRC

CyIRC Tweets

Chat Icon