In accordance with man pages:
apthas parameterfull-upgradeapt-gethas parameterdist-upgrade.
Are both the same command?
btw: which is officially the recommended command in Ubuntu 16.04? apt or apt-get?
6 Answers
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
8dist-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.
Yes they are the same command. This part of apt's cmdline/apt.cc 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...
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.
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.
Apt is the newer version of the command. You should switch to using apt instead of apt-get. It's better and gives a better idea of what the command is doing.
As for apt full-upgrade and apt-get dist-upgrade it's 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.
Difference is output:
**apt
- full-upgrade
**
root@eesti-ThinkPad-T420:/home/eesti/apollo11# apt full-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required: shim
Use 'sudo apt autoremove' to remove it.
0 uuendatud, 0 värskelt paigaldatud, 0 eemaldada ja 0 uuendamata.**apt-get
- dist-upgrade
**
root@eesti-ThinkPad-T420:/home/eesti/apollo11# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required: shim
Use 'sudo apt autoremove' to remove it.
*The following packages could receive security updates with UA Infra: ESM service enabled: libpam0g libdjvulibre-text bluez libwebp5 libdns-export162 libqpdf21 gstreamer1.0-alsa libisccfg140 intel-microcode libnss3-tools linux-headers-generic linux-libc-dev php7.0-cli vim-common libx11-xcb-dev libnss3-nssdb libcurl3 python-avahi libxml2-utils libgrilo-0.2-1 gstreamer1.0-plugins-base-apps libpam-modules openssl ruby2.3 bluez-cups imagemagick ntfs-3g git-man libsystemd0 linux-image-generic libgd3 libavahi-glib1 nginx-core libicu55 binutils libmagickwand-6.q16-2 squashfs-tools bind9-host php7.0-opcache linux-signed-image-generic libavahi-common-data dnsutils libavahi-common3 libpython3.5 python3.5 php7.0-common git openssh-sftp-server python3.5-minimal libisc160 udev gstreamer1.0-plugins-base libpam-runtime isc-dhcp-common python3.5-dev apache2-data libx11-6 linux-signed-generic nginx-common libudev1 libwebpdemux1 libavahi-ui-gtk3-0 libaspell15 libapr1 apport imagemagick-6.q16 libmagickcore-6.q16-2-extra php7.0-json libisc-export160 libudev-dev libruby2.3 libcaca0 php7.0-readline python3-apport avahi-daemon systemd-sysv libcurl4-openssl-dev libavahi-core7 libgcrypt20 liblwres141 vim-runtime liblz4-1 vim libpam-systemd libgstreamer-plugins-base1.0-0 distro-info-data libsndfile1 avahi-dnsconfd gstreamer1.0-x systemd libpython3.5-dev gir1.2-gst-plugins-base-1.0 libssl-dev libssl-doc libwebpmux1 mysql-common libpam-modules-bin openssh-server libx11-data aspell libopenexr22 openssh-client libmagickcore-6.q16-2 python-libxml2 libmysqlclient20 avahi-autoipd libdns162 libx11-dev qpdf libx11-doc bluez-obexd libdjvulibre21 apport-gtk libxml2 libnss3 apache2-bin ca-certificates vim-tiny imagemagick-common libisccc140 avahi-utils libpython3.5-stdlib libbind9-140 libbluetooth3 libexiv2-14 libavahi-compat-libdnssd1 apache2 libpython3.5-minimal libavahi-client3 apache2-utils curl isc-dhcp-client avahi-discover rpcbind linux-generic libapache2-mod-php7.0 python3-problem-report libcurl3-gnutls libx11-xcb1 libssl1.0.0 tzdata docker.io nginx
Learn more about UA Infra: ESM service for Ubuntu 16.04 at
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
0 uuendatud, 0 värskelt paigaldatud, 0 eemaldada ja 0 uuendamata.
root@eesti-ThinkPad-T420:/home/eesti/apollo11# So as You can See, it is not really "the same"