According to an article on debian-administration.org,
If the dependencies have changed on one of the packages you have installed so that a new package must be installed to perform the upgrade then that will be listed as “kept-back”.
Cautious solution 1:
Per Pablo’s answer, you can run
sudo apt-get --with-new-pkgs upgrade, and it will install the kept-back packages.
This has the benefit of not marking the kept-back packages as “manually installed,” which could force more user intervention down the line (see comments).
If Pablo’s solution works for you, please upvote it. If not, please comment what went wrong.
Cautious solution 2:
The cautious solution is to run
sudo apt-get install <list of packages kept back>. In most cases this will give the kept-back packages what they need to successfully upgrade.
A more aggressive solution is to run
sudo apt-get dist-upgrade, which will force the installation of those new dependencies.
dist-upgrade can be quite dangerous. Unlike upgrade it may remove packages to resolve complex dependency situations. Unlike you, APT isn’t always smart enough to know whether these additions and removals could wreak havoc.
So if you find yourself in a place where the “cautious solution” doesn’t work,
dist-upgrade may work… but you’re probably better off learning a bit more about APT and resolving the dependency issues “by hand” by installing and removing packages on a case-by-case basis.
Think of it like fixing a car… if you have time and are handy with a wrench, you’ll get some peace of mind by reading up and doing the repair yourself. If you’re feeling lucky, you can drop your car off with your cousin
dist-upgrade and hope she knows her stuff.
Whenever you receive from the command
apt-get upgrade the message
The following packages have been kept back:
then to upgrade one or all of the kept-back packages, without doing a distribution upgrade (this is what
dist-upgrade does, if I remember correctly) is to issue the command:
apt-get install <list of packages kept back>
this will resolve the kept-back issues and will ask to install additional packages, etc. as was explained by other answers.
See also: Why use apt-get upgrade instead of apt-get dist-upgrade?
Try this Unix SE answer:
sudo apt-get --with-new-pkgs upgrade
This allows new packages to be installed. It will let you know what packages would be installed and prompt you before actually doing the install.
apt command (friendly alternative to
apt-get) share this option.
apt install <pkg> instead will mark pkg as “manually installed”!! To mark it again as “automatically installed” use
apt-mark auto <pkg> (see also subcommand
showmanual). More info on this answer.