Recently I got the “The following packages have been kept back” message when running “apt-get dist-upgrade” several times. What is it and what action should be taken? The answer comes from here.
The conclusion is, you don’t need to do anything since this is a feature rather than a problem.
The root cause is Ubuntu’s “phased updates“ feature.
To give the end user a more stable and reliable system, Ubuntu introduced phased updates in 2013.
Whenever a new package update is published, it is rolled out in phases. Only some users get that update initially. Ubuntu then waits for the crash reports generated by the Apport tool.
If it notices significant crash reports for the recently updated package, it will pause the update rollout on the package and work on fixing the issue.
If no significant crash reports are collected, more and more users get that package update, until the update is finally “fully phased” and everyone gets that package update.
When you see ‘xyz package has been kept back’ message, it means that update on xyz package is being phased and your system is not getting it in the present rollout.
If you wait for a few hours or run the system update the next day, you’ll notice that xyz package is now upgradable and some other package has been kept back.
The phase updates were introduced in 2013 but you probably never encountered this ‘package kept back’ issue until recently.
It’s because phased updates were only rolled out through the update-manager tool(The GUI tool “Software Updater”). But this was changed in Ubuntu 21.04 with a new version of APT: “Phased updates” started to roll out through “apt/apt-get” CLI tools as well. So if you updating Ubuntu from a version before “21.04” to “22.04(LTS)”, and you use “apt/apt-get”, you will see this happens recently.