July 3rd, 2023
Updated 12th April 2025
If you have been following my Linux blog series, At this point:
You have installed Linux (Tutorial #1);
You have a little knowledge about the boot-up process (Tutorial #2);
You have connected to the Internet (Tutorial #3);
And you have familiarized yourself with the Linux file system (Tutorial #4).
Now it is time to install some applications so you can actually start using your Linux machine to something practical. There are many ways to install an application on Linux; therefore I will divide this Tutorial into 3 parts.
What is a Package
A package can almost be interchangeable with an application. A package is a compressed file containing all the necessary files to install an application, like binaries, executable files, configuration files and information about the dependencies.
Dependencies are packages that are required to be installed beforehand in order for the application in question to be successfully installed.
For a comparison: in Microsoft Windows, you would normally do an Internet search to find the “install / download application X” button. You would then download an executable file (application.exe) that starts the installation wizard, next, next, finish and then launch the application. You will notice that in Linux, at least for Ubuntu, it’s actually even simpler.
The old way of installing Linux Packages
I’m going to scare you first though, with how things used to be, before package-managers existed.
Installing Tarballs
Installing tarballs is the good ol' fashioned way of installing applications on Linux. This method is universal for all distributions and requires no package managers. It is still used today on some distributions, like Slackware.
The method is in a way similar to installing an application in Windows. However, it is way more manual. The drawbacks of this method are:
No GUI alternative
Complex installation
Can’t update the software
You have to manually install dependencies.
The tarball installation requires 3 steps, assuming you have downloaded the .tgz or .txz package first:
First step is to extract the package with the “tar -zxvf package.tar.gz” command.
Then, you need to find the makefile inside the extracted folder to compile the program with the “make” command.
Thirdly you install the program with the “make install” command.
Then you cross your fingers that there are no missing dependencies that you need to install, which it almost certainly will be.
Package Managers to the Rescue
Thankfully things have gotten much easier with the development of package managers.
Package managers will download packages from a software repository, find out what dependencies are required by checking the metadata and then automatically install the required dependencies. This process makes an installation take one minute, instead of one week. You can also update applications without having to reinstall them every time there is a new version. There are GUI (Graphical) versions and CLI (Command-Line) versions of package managers.
In short: a package manager is a tool that allows users to install, remove, upgrade, configure and manage software packages on an operating system.
I found this detailed explanation of how packet managers work, if you want to know more: https://itsfoss.com/package-manager/
Note: Windows nowadays have a packet manager called Microsoft Store. I don’t know about you but I can count my fingers on one hand how many times I have used it.
Different Linux Packet Managers
There are different packet managers, depending on which Linux distribution you are on:
Arch Linux and it’s forks (Manjaro for example) uses Pacman
OpenSUSE use Zypper
Redhat and it’s forks uses YUM = Yellowdog Updater Modified, or the next version called DNF = DaNdiFied YUM (Yes, really!)
They might work differently under the hood, but from a user perspective they are very similar. If you have learnt to use one of them, you know them all. This tutorial however is going to focus on: