Posted by Steve on Sun 2 Jan 2005 at 14:54
Sometimes when you go to upgrade your machine with apt-get you will see that a package is being "kept back".
Normally to upgrade a machine you would run:
apt-get update apt-get upgrade
This should upgrade all the installed packages upon your machine (well at least all those packages which you have installed that have a newer version available), but it doesn't always do that.
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".
For example my apt-get upgrade today showed this:
root@sun:~# apt-get upgrade Building Dependency Tree... Done The following packages have been kept back: bind9-host dnsutils imagemagick libmagick6 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
There we can see four packages haven't been upgraded, even though newer packages are available. This is because two new packages were introduced, and these upgrades depend upon it.
To fix this you must run :
apt-get dist-upgrade
This will upgrade the packages that have newer versions available, and install any new dependencies which are required to do that.
root@sun:~# apt-get dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following NEW packages will be installed: libdns16 libdps1 The following packages will be upgraded: bind9-host dnsutils imagemagick libmagick6 4 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 3697kB of archives. After unpacking 1860kB of additional disk space will be used. Do you want to continue? [Y/n]
Here we can see the two new packages which are required to satisfy the dependencies of the upgrades, libdns16 and libdps1.
This article can be found online at the Debian Administration website at the following bookmarkable URL:
This article is copyright 2005 Steve - please ask for permission to republish or translate.