In accordance with man pages:

  • apt has parameter full-upgrade
  • apt-get has parameter dist-upgrade.

Are both the same command?

btw: which is officially the recommended command in Ubuntu 16.04? apt or apt-get?


apt full-upgrade performs the same function as apt-get dist-upgrade.

man apt

full-upgrade (apt-get(8)) performs the function of upgrade but will remove currently installed packages if this is needed to upgrade the system as a whole.

man apt-get

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.

  • 7
    Why create confusion with a new name that does the same thing? You can do either apt dist-upgrade (I just tried it) or you can do apt full-upgrade and you are saying they do the same thing. – Z boson Jan 24 '17 at 20:56
  • 10
    "full-upgrade" is about removing installed packages when necessary, while "dist-upgrade" is about "intelligently handling changing dependencies with new versions of packages", how is it the same function ? – Tristan Jan 25 '17 at 12:06
  • 3
  • 3
    It's the same function. It's just an alias in apt for the apt-get command. sources.debian.org/src/apt/1.6.1/cmdline/apt.cc/?hl=74#L74 (the actual macro invoked seems to be missing from the repo though). – Iain Collins May 14 '18 at 0:44
  • 7
    @Zboson The reason for the new name is that the "dist-upgrade" name was itself extremely confusing for many users: while it was named that because it was something you needed when upgrading between distribution releases, it sounded too much as though it was only for use in that circumstance, whereas in fact it's much more broadly applicable. – Colin Watson May 19 '19 at 23:17

Use apt as a first choice, but if you're scripting use apt-get. Apt-get has more stable output (meaning that the output format is left alone as much as possible so as not to break scripts which parse that output automatically). Apt-get also has some low-level commands not available in apt.

The manual pages for apt and apt-get describe full-upgrade and dist-upgrade a little differently, but they are probably the same command (apt accepts dist-upgrade as an alias of full-upgrade). This serves as a good example of apt-gets stability. In apt, the name was changed to be more user friendly, while in apt-get the name remains unchanged so as not to break compatibility with old scripts.


Yes they are the same command. This part of apt's cmdline/apt.cc source file proves it:

static std::vector<aptDispatchWithHelp> GetCommands()            /*{{{*/
   return {
      // [snip]
      // system wide stuff
      {"update", &DoUpdate, _("update list of available packages")},
      {"upgrade", &DoUpgrade, _("upgrade the system by installing/upgrading packages")},
      {"full-upgrade", &DoDistUpgrade, _("upgrade the system by removing/installing/upgrading packages")},
      // misc
      {"edit-sources", &EditSources, _("edit the source information file")},
      {"moo", &DoMoo, nullptr},
      // for compat with muscle memory
      {"dist-upgrade", &DoDistUpgrade, nullptr},
      // [snip]

And for completeness, cmdline/apt-get.cc:

static std::vector<aptDispatchWithHelp> GetCommands()           /*{{{*/
   return {
      // [snip]
      {"dist-upgrade", &DoDistUpgrade, _("Distribution upgrade, see apt-get(8)")},
      {"full-upgrade", &DoDistUpgrade, nullptr},
      // [snip]

For both apt and apt-get, full-upgrade and dist-upgrade both refer to the same DoDistUpgrade function and therefore do the exact same thing.

I first posted this info to complement schod's answer in an edit, but it was rejected so I'm answering myself instead...


apt and apt-get are two different commands. apt is the newer command and should be used as default. You should change to using apt over apt-get as apt is better.

  • 6
    Why/how is it better? – mafrosis Jul 10 '19 at 10:29
  • 4
    From apt man page: The apt(8) commandline is designed as an end-user tool and it may change behavior between versions. While it tries not to break backward compatibility this is not guaranteed either if a change seems beneficial for interactive use. – Lokesh Nov 29 '19 at 5:56
  • 5
    I disagree, on should use apt if one uses it directly from the command line. But use apt-get in scripts. This because the latter has a stable command line interface, but the former might change as mentioned by Lokesh. Apt is not better it is just meant to be more user friendly – M.D. Feb 11 '20 at 15:25

Apt is the newer version of the command. You should switch to using apt instead of apt-get its better and gives better idea of what the command is doing.

As for apt-full-upgrade and apt-get-dist its the same command. But again apt is the newer command.

For example when using apt you get a progress bar to tell you how much of the install/update is done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.