Command Line – Understanding Update and Upgrade Commands

command lineupdatesupgrade

I want to know about different update and upgrade commands as follows:

  • update
  • upgrade
  • dist-upgrade
  • do-release-upgrade etc.

For new users of Ubuntu and using the command-line, which of these is used and when? In brief, help me to understand the use of the above commands.

Best Answer

APT (Advanced Packaging Tool) is a management system for software packages. Usually used as root/sudo user. The usual command is apt-get, but with Ubuntu 14.04, there's also the apt tool: What is the difference between apt and apt-get?

1. sudo apt-get update:

  •   update
           update is used to resynchronize the package index files from their sources. The indexes of available packages are
           fetched from the location(s) specified in /etc/apt/sources.list. For example, when using a Debian archive, this
           command retrieves and scans the Packages.gz files, so that information about new and updated packages is available.
           An update should always be performed before an upgrade or dist-upgrade. Please be aware that the overall progress
           meter will be incorrect as the size of the package files cannot be known in advance.
    
  • After changing /etc/apt/sources.list or /etc/apt/preferences or adding/removing repositories, you have to run this command to make apt aware of your changes.

  • Run this command periodically to make sure your source list is up-to-date. This is the equivalent of "Reload" in Synaptic.

  • apt update is equivalent.

2. sudo apt-get upgrade:

  •  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.
    
  • This command upgrades all installed packages. This is the equivalent of "Mark all upgrades" in Synaptic.

3. sudo apt-get dist-upgrade:

  • 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. The dist-upgrade command may therefore 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.
    
  • It tells APT to use "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary.
  • apt-get dist-upgrade does not perform distribution upgrade. visit this for upgrading.
  • apt full-upgrade is equivalent.

4. sudo apt-get dselect-upgrade:

  • dselect-upgrade
           dselect-upgrade is used in conjunction with the traditional Debian packaging front-end, dselect(1).  dselect-upgrade
           follows the changes made by dselect(1) to the Status field of available packages, and performs the actions necessary
           to realize that state (for instance, the removal of old and the installation of new packages).
    
  • Visit man-page of dpkg in order to get information through --get-selections, --set-selections and --clear-selections.

5. sudo do-release-upgrade:

  • Upgrade  the  operating system to the **latest release** from the command-line.  This is the preferred command if the machine
       has no graphic environment or if the machine is to be upgraded over a remote connection.
    
  • Use -d, --devel-release to check if upgrading to the latest devel release is possible
  • Recommended to visit Community Upgrade Help.

Note: All Information is provided with use of manpages, and community help as a reference/source.

Related Question