Monday, 13 February 2012

Different options for updating your Linux Distribution (apt-get)

For some people it is not straightforward what each command does when they update their Linux Distribution. This brief blog post provides some information on the different commands being used for updating a distribution using the apt-get command.  

apt-get update
update downloads the package lists from the repositories and "updates" them to get 
   information on the newest versions of packages and their dependencies (for all 
   repositories and PPAs). It is used to re-synchronize the package index files 
   from their sources from the location(s) specified in /etc/apt/sources.list. An update
   should always be performed before any upgrade.

apt-get upgrade
upgrade is used to install the newest versions of all packages currently installed on the 
   system from the sources enumerated in /etc/apt/sources.list. Packages currently 
   installed with new versions available are retrieved and upgraded; under no

   circumstances are currently installed packages removed, or packages not already 
   installed retrieved and installed. New versions of currently installed packages that
   cannot be upgraded without changing the install status of another package will be left
   at their current version. An update must be performed first so that apt-get knows that
   new versions of packages are available.

apt-get dist-upgrade
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.

apt-get full-upgrade
full-upgrade performs the function of upgrade but may also remove installed packages if
   that is required in order to resolve a package conflict.