The Debian Series: package managers
In the previous story of this series, I spoke a little bit about users and groups management in our Debian 7 machine.
Another crucial thing about using additional software is the fact that is installed and accessed through package managers.
Different from Windows OS systems, in Debian and general Linux OS’s you will find software on repositories (also on binaries). The OS itself comes with repositories sources (a bunch of several secure URL’s where you can download any kind of software) maintained by the community behind Debian or by particular companies involved, where you just can simply go and download whatever you need and install it using CLI commands.
There’s a lot of PM’s for Debian, tools like
apt are the most popular ones. Almost everyone works in a similar way but I will dig into each one next.
aptitude is a tool that can manage packages with Debian. This tool is no longer maintained anymore and not exists on Debian 9 instances. It presents itself as a high-level interface for package management.
aptitude works just like
apt and the other package managers, it contains commands just to update, upgrade, delete and perform package-related actions with it. The command for aptitude is
aptitude and pretty much goes along with descriptive arguments that define the intended actions, for example:
aptitude search [program] . This is a command to find a specific program on a bunch of source repositories.
This also works with other arguments that you can reference from the documentation itself.
Before using it (and if we have a fresh install), it’s pretty much recommended to update the source list on the OS in order to get the most recent packages possible. This applies to ALL package managers (consider it as a pro-tip :)).
There are 2 main commands that work slightly differently on, in essence, do the same, and a purge command(or deletion command) that will be explained right away.
aptitude update command updates the local package source list and compares it versus the source list of the mirrored servers of Debian available worldwide, once the comparison is done, it downloads the versions to the local package source.
aptitude upgrade updates the installed programs in the OS.
aptitude purge that deletes software installed and also removes all the configuration settings around.
For most common package managers, the location of the programs is on the
/etc/apt/sources.list directory. You can access it through GUI as well if my memory doesn’t fail there’s a tool for
aptitude called TUI that is a terminal user interface, an alternative for terminal users.
Let’s move on to the
This is also a tool for managing packages but in an advanced way, as a matter of fact, APT stands for Advanced Package Tool.
This tool is way more sophisticated than
dpkg and has more commands than
aptitude with several similarities but with a lot of more functionality, you can download, upgrade mirror servers, remove and purge installed packages, but also you can visualize installed package information, revisit dependencies, and more, plenty more.
apt command works with certain arguments in order to get specific tasks done. The
apt-get command handles installations, upgrades, and packages deletion processes while
apt-cache find and shows software information, dependencies, and repository sources of the OS.
apt uses the
/etc/apt/sources.list file listing installed package source repositories.
Is the Debian Package manager, this is also a package manager that works directly with .deb files.
This is a low-level tool that lets you run and manage .deb files installation process easily from the CLI. I’m not pretty sure if it works with the
apt source directory, but is more straightforward on how to use it. I will move you into some examples and see it for yourself.
which dkpg: if you are a regular Linux user, you will see that the
whichcommand points to you to the location of the selected program.
dpkg -l: list of installed programs
dpkg -i [package.deb]: installing a .deb file
dpkg -r [package]: removing a package
dpkg -L [program]: this command lists the content of the installed software
dpkg -l | grep [program]: this command (along with the
pipe), checks if a program is already installed in the OS.
I’m pretty sure that this explanation can drive you to use
dpkg in an efficient way.
Great, but, what about GUI tools?
From the initial list, we still missing the
synaptic and the
tasksel tools. But there’s nothing much to tell about it.
synaptic is a GUI tool to manage packages, extremely similar to
Tasksel has a different approach because is task-oriented, as a matter of fact, Tasksel is a TUI (Interface on the terminal), to manage the installation of software based on tasks.
tasksel is more intuitive, and also goes along with self-explanatory command and arguments. Here’s a quick example:
Once again, I’m trying to generate some basic and quick lectures to provide an introductory text for each key component of Debian environments.
Please feel free to expand it if you want to.
More to come, stay tuned.
Happy coding :)