1

There's a decade old answered question "The following packages have been kept back:" Why and how do I solve it?.

The answers are variations on these three themes:

sudo apt-get --with-new-pkgs upgrade <list of packages kept back> # theme 1
sudo apt-get dist-upgrade                                         # theme 2 
sudo apt-get install <list of packages kept back>                 # theme 3

My version of this issue is; I run sudo apt-get update; sudo apt-get upgrade and am confronted with the following output:

The following packages have been kept back:
  coreutils libpulse-dev libpulse-mainloop-glib0 libpulse0 libpulse0:i386
  libpulsedsp pulseaudio-utils snapd update-notifier update-notifier-common
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.

And this is everytime I run sudo apt-get update; sudo apt-get upgrade. I can't recall if it's always the same ten packages or ~10 different packages each time. Anyways, I go ahead and start trying the solutions referenced earlier:

sudo apt-get --with-new-pkgs upgrade <list of packages kept back> # theme 1
sudo apt-get dist-upgrade                                         # theme 2 

Neither of those works (and yes I do replace <list of packages kept back> with the actual names of the packages kept back). Nothing is displayed in my terminal after issuing those commands. Just two blank lines. So I'm forced to try the last option:

sudo apt-get install <list of packages kept back>                 # theme 3

This works but has it's issues:

  1. I have to copy/paste from the terminal output (I always forget the terminal copy/paste shortcut key)
  2. There's always spaces/line breaks/etc. that don't copy/paste well in my terminal
  3. I myself introduce typos and human error
  4. It's just a bad way to do things, you get the point.

Is there any clean way to run one command (or script) that will upgrade my system by way of apt? I'd even (gasp) settle for a GUI upgrade button at this point. It's just a minor headache to always have a <list of packages kept back> anytime I upgrade any of my systems.

jophuh
  • 145

2 Answers2

1

It is a fairly recent thing related to phased updates.

There no need for any action. It usually takes a few days to make sure the updated packages are safe.

mikewhatever
  • 32,638
0

Packages may be held back for two reasons:

  1. The item is being released in a phased manner, so not everyone at once gets it. Simply wait and the item should eventually get delivered. Check the status of the package with:
apt-cache policy pulseaudio  
pulseaudio:  
  Installed: 1:15.99.1+dfsg1-1ubuntu2.1  
  Candidate: 1:15.99.1+dfsg1-1ubuntu2.2  
  Version table:  
     1:15.99.1+dfsg1-1ubuntu2.2 500 (phased 70%)  
...snip  

You You may force the delivery with:

sudo apt -o APT::Get::Always-Include-Phased-Updates=true upgrade --dry-run

Remove the --dry-run when you have checked that is the group you want to install.

  1. The package(s) have had a serious problem reported and delivery has been temporarily stopped. The apt-cache policy will not report a phased percentage. Unless you want to help debugging, just wait for their re-release.
ubfan1
  • 17,838