I've got an Ubuntu 8.04 LTS server. There are several packages which are "kept back" ("the following updates have been kept back") when I do an apt-get upgrade
. It's my understanding that I can do an apt-get dist-upgrade
to upgrade these packages, but I have a few concerns:
If I do a
dist-upgrade
, will I be upgrading from 8.04 to higher version (8.10 I guess)? If so, what's the point of 8.04 being "Long Term Support" (LTS)?Is this a "dangerous" process? I'm assuming that packages are kept back because there are new packages that they depend on. Does
dist-upgrade
simply pull the new packages and do a fairly straightforward upgrade, or are there caveats to look into?
The command apt-get upgrade will not add or remove packages. apt-get dist-upgrade will add or remove packages as required.
The command apt-get dist-upgrade will not automatically upgrade you from one release to another unless you have also updated your sources (/etc/apt/sources.list) to point at a newer release.
man apt-get
For the most part I always apt-get dist-upgrade to apply updates to a system. Of course pay attention to exactly what new packages are being added or removed. Frequently this happens when something is being added like a newer kernel that isn't compatible with the previous and you will have to recompile modules. If you have some kernel module you had to build on your own, then you may need to make sure you recompile it for the new kernel. I have a couple systems with network interfaces not supported by the stock kernel that I have to recompile the network driver after each kernel update.
upgrade vs. dist-upgrade are really debian terms. In debian you'd use upgrade to get changes within a stable release (which would not involve anything so drastic as a removal) and dist-upgrade to go between releases. dist-upgrade should have the same results as upgrade assuming no removals are necessary.
Going between releases would require changing your sources.list to point at the new release.
Ubuntu does not have the same ultraconservative release model, so the terms do not map cleanly -- you'd generally just want to use dist-upgrade unless you're going between releases, in which case you use its own upgrader, do-release-upgrade.