Location
Just like many Linux tools, apt is stored in the /etc
directory—contains the configuration files for all the programs that run on Linux systems—and can be viewed by navigating to the directory.
Apt also has a configuration file which can be found in the /etc/apt
directory with the file name apt.conf.
You would be doing a lot of package installations with apt, therefore it would go a long way to know that package sources are stored in a sources.list
file. Basically, apt checks this file for packages and attempt to install from the list of packages—let’s call it a repository index.
The sources.list
file is stored in the /etc/apt
directory and there is a similar file, named sources.list.d.
It isn’t actually a file, but a directory which keeps other sources.list
files. The sources.list.d directory is used by Linux for keeping some sources.list
files in a separate place—outside the standard /etc/apt
directory.
The confusion: APT vs APT-GET
Yes, a lot of people actually mistake apt to be the same as apt-get. Here’s a shocker: they are not the same.
In truth, apt and apt-get work similarly however the tools are different. Let’s consider apt to be an upgrade on apt-get.
Apt-get has been in existence before apt. However apt-get doesn’t exist in isolation as it works together with other apt packages such as apt-cache and apt-config. These tools when combined are used to manage linux packages and have different commands as well. Also these tools are not the easiest to use as they work at a low level, which an average Linux user couldn’t care less about.
For this reason, apt was introduced. The version 1.0.1 of APT has the following on the man page, “The apt command is meant to be pleasant for end users and does not need to be backward compatible like apt-get.”
Apt works in isolation and doesn’t need to be combined with other tools for proper Linux administration, plus it is easy to use.
The Commands
For an average Linux user, the commands are all that matter. Through the commands, tasks are executed and actual work can be done. Let’s take a look at the major apt commands.
Get Help
The most important of all the commands to be discussed in this article is the command used to get help. It makes the tool easy to use and ensures you do not have to memorize the commands.
The help provides enough information to carry out simple tasks and can be accessed with the command below:
You would get a list of various command combinations from the result, you should get something similar to the image below:
If you desire, you could check out the apt man pages for more information. Here’s the command to access the man pages:
Search for package
For a lot of operations, you would need to know the exact name of a package. This and many more uses are reasons to make use of the search command.
This command checks all the packages in the repository index, searches the keyword in the package descriptions and provides a list of all packages with the keyword.
Check package dependencies
Linux packages have dependencies, these dependencies ensure they function properly as the packages break when the dependencies break.
To view a package’s dependencies, you use the depends command.
Display package information
Displaying a package’s dependencies is one information you would find useful. However, there are other package details you can get. For me, it would be less productive to memorize all the commands to access other details such as the package’s version, download size etc.
You can get all of a package’s information in one attempt using the apt command as seen below:
Install package
One of Linux’s strongest points is the availability of lots of powerful packages. You can install packages in two ways: either through the package name or through a deb file—deb files are debian software package files.
To install packages using the package name, the command below is used:
As stated earlier, you need to know the package name before using it. For example, to install Nginx the command would be apt install nginx.
The other means of installing packages is the through the deb file if available. When installing a package through its deb file, apt fetches the package dependencies itself and downloads it so you do not have to worry about them.
You can install deb files using the absolute path to the files with the command below:
Download package
If for some reason, you need to download a package without having it installed, you can do so using the download command.
This would download the package’s deb file into the directory where the command was run. You can download packages using the command below:
If you are then interested in installing the .deb file, you can then install using the install command.
Update repository index
Remember we talked about sources.list earlier? Well, when a new version of a package is released, your linux machine is not able to install it yet because it would not indicate. To have it indicate, it needs to reflect in the sources.list file and this can be done using the update command.
This command refreshes the repository index and keeps it up-to-date with the latest changes to the listed packages.
Remove packages
Packages break. Packages become obsolete. Packages need to be removed.
Apt makes it easy to remove packages. Here are different conditions to removing packages: removing the binary files and keeping the config files, removing the binary files and the config files.
To remove the binary files alone, the remove command is used.
More than one package can be removed, so you can have apt remove nginx top to remove the Nginx and top packages at the same time.
To remove the configuration files, the purge command is used.
If you wish to do both at once, the commands can be combined as seen below:
Before proceeding, it should be known that when packages are removed, their dependencies remain i.e. they are not removed too. To remove the dependencies while uninstalling, the autoremove command is used as seen below:
List packages
Yes, you can have the packages on your Linux machine listed. You can have a list of all packages in the repository index, installed packages and upgradeable packages.
Regardless what you intend doing, the list command would be used.
The command above is used to list all the packages available in the repository index.
The command above is used to list the packages installed on your Linux machine.
The command above is used to list the packages installed on your machine that have upgrades available.
Updating packages
When it comes to packages, it’s not all about installing and removing packages; they need to be updated too.
You can decide to upgrade a single package or all packages at once. To update a single package, the install command is going to be used. Surprising right? Yes, however we are going to be adding the –only-upgrade parameter.
This works when you intend upgrading just one package. However, if you want to upgrade all the packages you would need to use the upgrade command.
The following command would be used to make such an upgrade:
It should be noted that the upgrade command doesn’t remove dependencies and even if the upgraded packages do not need them anymore i.e. they are obsolete.
System upgrade
Unlike the regular upgrade, the full-upgrade command to be discussed here performs a complete system upgrade.
With the full-upgrade command, obsolete packages and dependencies are removed and all packages (including system packages) are upgraded to their latest versions.
The command for doing this, is full-upgrade as seen below:
Conclusion
Apt is a powerful tool that makes the use of Debian and Ubuntu based Linux distributions a wonderful experience. Most of the apt commands listed here require root permissions, so you may need to add sudo to the start of the commands.
These commands are just a tip of the iceberg of the immense powers that the apt tool possesses, and they are powerful enough to get you comfortable with managing packages on your Linux machine.