Someone says "update" is for small changes and "upgrade" is for big changes. I am very much confused about software update and upgrade. And when I should use update vs. when I should use upgrade.

Could someone explain the difference between these terms in the package managers?

1 Answer 1


Ubuntu / Debian etc. using apt-get:

You should first run update, then upgrade. Neither of them automatically runs the other.

  • apt-get update updates the list of available packages and their versions, but it does not install or upgrade any packages.
  • apt-get upgrade actually installs newer versions of the packages you have. After updating the lists, the package manager knows about available updates for the software you have installed. This is why you first want to update.

- Source.

However with Red Hat / CentOS using yum the update command will ask you if you want to apply the updates it finds.

$ sudo yum update

grabs a list of all available updates and asks you if you would like to apply them. Like this:

 kf5-sonnet-core                            x86_64                   5.33.0-1.el7                                    epel                   150 k
 kf5-sonnet-ui                              x86_64                   5.33.0-1.el7                                    epel                   141 k

Transaction Summary
Upgrade  52 Packages

Total size: 15 M
Is this ok [y/d/N]: 

When your friend refers to update as "small changes" and upgrade as "big changes" he actually means the difference between upgrade and dist-upgrade.

From the apt-get manual:

       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.

       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
  • 1
    Recent experience has shown me that on Ubuntu 16.04, even though the "upgrade" command probably does rely on the "update" command to know which packages have updates, which version actually gets downloaded and installed is completely independent of when you ran "update". When you run the "upgrade" command it just downloads and installs the latest version of anything the "update" command showed had updates. So if you run "update" and then a week later "upgrade", you will likely get upgraded to even newer versions than what "update" saw. Commented Jul 31, 2019 at 13:18
  • 1
    Does that mean upgrade will fail if a package just has one new dependency or if a dependency of the package has one new dependency? If so isn't that very often the case for software which is actively maintained? If that is the case and I would use only upgrade my programs would be stuck at legacy version pretty fast if these programs evolve at a reasonable pace.
    – Ini
    Commented Feb 24, 2020 at 12:25
  • 1
    And what is a "less important package"?
    – Ini
    Commented Feb 24, 2020 at 12:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .