Many Linux users, both veterans, and newbies, often get confused about what the difference between the Linux commands apt, and apt-get are and when they should use one or the other.
A Brief History of the Advanced Packaging Tool (APT)
Debian introduced the apt command in 2014. However, most users were not aware of the new command, opting for the more familiar and reliable apt-get. The apt command did not garner recognition or widespread use until the release of Ubuntu 16.04 in 2016.
Soon after that release, the prevalence of the apt command rather than the traditional apt-get command in Ubuntu 16.04 documentation, how-to articles, and websites prompted other Debian- and Ubuntu-based distros to follow suit and encourage their users to use the apt rather than apt-get command.
Before we get too in-depth with the differences between apt and apt-get, lets first discuss what APT is and why Debian developed it.
When the Debian distribution initially released, a set of tools was necessary to manage the package system. This prompted the development of the Advanced Packaging Tool (APT). APT is just the front-end to dpkg, Debian’s package management software. Please don’t confuse the apt command with APT. The two are not the same.
APT is an open-source command-line tool that works with the Linux core libraries to handle the installation, configuration, and removal of packages on Debian, Ubuntu, and other Debian/Ubuntu-related Linux distros.
When APT became available, apt-get was one of the main command-line tools included. Another oft-used command-line tool was apt-cache, and for successful installation or removal of a package, you had to use both in conjunction. This was often clunky, cumbersome, and sometimes confusing for the user. Plus, it was just downright ugly. Enter the apt command.
The apt Manpage originally stated that the command was meant to be “pleasant for end-users.” It has been since updated to read:
“It is intended as an end-user interface and enables some options better suited for interactive usage by default compared to more specialized APT tools like apt-get(8) and apt-cache(8).”
apt command replacements for apt-get commands
|apt Command||Command It Replaces||Function of Command|
|apt install||apt-get install||Install a package.|
|apt remove||apt-get remove||Remove package.|
|apt purge||apt-get purge||Remove package and configuration.|
|apt update||apt-get update||Refresh repository index.|
|apt upgrade||apt-get upgrade||Upgrade all upgradeable packages.|
|apt autoremove||apt-get autoremove||Remove unwanted packages.|
|apt full-upgrade||apt-get dist-upgrade||Upgrade package & auto-handle dependencies.|
|apt search||apt-cache search||Search for a packages.|
|apt show||apt-cache show||Show package details.|
apt, in addition to the replacement commands above, also adds two new commands that the apt man page lists as “work-in-progress.” These two are:
- apt list – List packages with criteria (installed, all available, upgradeable)
- apt edit-sources – Edits the sources.list file in the preferred editor
apt vs. apt-get: know the differences
The best way to show the difference between the apt and the apt-get commands is to see in action. To do this, we will install Kazam, one of the best and easiest to use screen recorders for Linux using both commands.
Let’s try apt-get first.
# sudo apt-get install kazam
While the installation with apt-get is straightforward, and we see the package and the dependency packages being installed, we have no clue how long the installation will run.
Now let’s install Kazam with the apt command.
# sudo apt install kazam
With the apt command, not only do we see Kazam and all the dependent applications being installed, but we’re presented a nice progress bar at the bottom of the terminal window, letting us know the progress of is installation. Much better, isn’t it?
We could have achieved the same results with apt-get and some additional command options. But why bother, apt has them built-in.
So, what should you use, apt or apt-get? Unless there is a compelling reason not to, always opt for the apt command. It combines the most commonly used commands from apt-get and apt-cache with much less fuss.
The only logical reason to use the apt-get and related commands is if you are using them in a bash script. These commands are lower-level, considered “back-end,” and are most often used to support APT-based packages such as Synaptic, aptitude, and the Ubuntu Update Manager.
Dedicated users of the apt-get and apt-cache commands should not be discouraged, however. Debian has no plans to deprecate the apt-get or apt-cache commands, as both are vital in creating APT-based packages. And while it’s recommended that you use the apt, it’s not a requirement. apt-get will work just fine.
The apt command, conversely, is specially designed for use by the end-user. It’s friendlier, tidier, and fancier. This was clear in our example. Plus, that progress bar is pretty cool!
We encourage you to check out the various options of both commands via
# man apt-get
# man apt
Please let us know your experience with the commands, as well as your preferred command and why.