This article requires more details with links to the other upgrade options. Maybe even have a general intro page on updates. Also, the same steps to record the Ubuntu version information before running the update.
In a server environment there are different levels of updates,
- upgrade - Package Update without removing packages
- dist-upgrade - Package Update using conflict resolution to remove outdated packages
- do-release-update - Release Updates
This is to allow the administer fine grained control. The more higher level of updates, the more risk to a system.
After running an upgrade, ssh into the system with a new session and check if the system welcome message requests a reboot,
sudo reboot
upgrade
Package Update using upgrade is the safest and covered in Setup Ubuntu Linux Base Server. The command to upgrade is,
sudo apt-get upgrade
A reboot is almost never required.
From the man pages,
dist-upgrade in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. So, dist-upgrade command may remove some packages. The /etc/apt/sources.list file contains a list of locations from which to retrieve desired package files. See also apt_preferences(5) for a mechanism for overriding the general settings for individual packages.
Once the system actually is in production you will want to review what will be upgraded before actually performing the upgrade. This can be performed using --simulate,
sudo apt-get upgrade --simulate
dist-upgrade
You may notice with apt-get upgrade that even though there are some updates not yet installed, they get "kept back". That is because these are considered more intrusive updates and will only be installed through a dist-upgrade.
This type of upgrade often updates the the Linux kernel in which case reboot is required to change to the new kernel.
From the man pages,
dist-upgrade in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. So, dist-upgrade command may remove some packages. The /etc/apt/sources.list file contains a list of locations from which to retrieve desired package files. See also apt_preferences(5) for a mechanism for overriding the general settings for individual packages.
There are some additional considerations when performing a dist-upgrade when a kernel upgrade is on the list,
- Have console access - in some rare cases, on boot-up you will want to choose to go back to your previous kernel.
- Be prepared to reboot - for the kernel to take effect you will need to reboot your machine.
Check to see if kernel upgrade is available,
sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: linux-image-virtual linux-virtual 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Notice line 5 indicates that kernel upgrade is required because of the keyword image.
Optionally, record the current kernel information. For example,
uname -a Linux krypton 2.6.32-33-server #72-Ubuntu SMP Fri Jul 29 21:21:55 UTC 2011 x86_64 GNU/Linux cat /proc/version_signature Ubuntu 2.6.32-33.72-server 2.6.32.41+drm33.18
Run the upgrade,
sudo apt-get dist-upgrade
Verify that a reboot is required by checking for the reboot-required file. If the file does not exist you will not need to reboot.
cat /var/run/reboot-required *** System restart required ***
If all goes well you will get back in. If not, get console access, reboot the system and select the previous kernel during the initial boot.
sudo reboot
Optionally, verify the new kernel is running. For example,
uname -a Linux krypton 2.6.32-40-server #87-Ubuntu SMP Tue Mar 6 02:10:02 UTC 2012 x86_64 GNU/Linux cat /proc/version_signature Ubuntu 2.6.32-40.87-server 2.6.32.57+drm33.23
do-release-update
Release updates are the most disruptive. The almost always require a reboot. The process is quite involved and it is recommended to turn off all services.