APT Keeps Packages Back

Ever wondered why apt keeps some packages back when doing an apt-get update && apt-get upgrade?

apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
The following packages have been kept back:
  cpp gcc libcurl3 ssh tasksel x-window-system-core xbase-clients xlibmesa-gl
  xutils
0 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.

The message actually means that there is a new package version available but for some reason it can not be installed. Maybe the package has broken or new dependencies. If you want further information about a specific packages this can be done by setting a special options like shown below.

apt-get -s -o Debug::pkgProblemResolver=yes install xutils > /dev/null
Starting
Starting 2
Package xutils has broken dep on xbase-clients
  Considering xbase-clients 4 as a solution to xutils 10013
  Added xbase-clients to the remove list
  Fixing xutils via remove of xbase-clients
Package x-window-system-core has broken dep on xbase-clients
  Considering xbase-clients 4 as a solution to x-window-system-core 0
  Re-Instated libglu1-xorg
  Re-Instated libdmx1
  Re-Instated libxkbfile1
  Re-Instated libxkbui1
  Re-Instated libxss1
  Re-Instated libxxf86dga1
  Re-Instated libxxf86misc1
  Re-Instated libxxf86vm1
  Re-Instated xbase-clients
  Re-Instated x-window-system-core
Package xlibmesa-glu has broken dep on libglu1
  Considering libglu1-xorg 0 as a solution to xlibmesa-glu 15
  Added libglu1-xorg to the remove list
  Considering libglu1-mesa 0 as a solution to xlibmesa-glu 15
  Fixing xlibmesa-glu via keep of libglu1-xorg
Package x-window-system-core has broken dep on libglu1-xorg
  Considering libglu1-xorg 0 as a solution to x-window-system-core 0
  Holding Back x-window-system-core rather than change libglu1-xorg
Done

Usually the problem can be resolved by explicitly installing the desired held back packages. For further information check out the APT-Howto.