This article is Part 7 of the LFCA series, here in this part, you will acquaint yourself with the general system administration commands to manage software packages in the Linux system.
As a systems administrator, you will be tasked with the responsibility of managing software packages. This includes installing, upgrading, and removing or uninstalling packages from your system.
There are two types of packages in a Linux system:
- Binary packages: These contain configuration files, executables, man pages among other documentation. For Debian, the binary packages have a .deb file extension. For Red Hat, the binary packages bear a .rpm file extension. Binary packages are unpacked using the Debian utility dpkg – For .deb binary files and rpm for .rpm binary packages as we shall see later on.
- Source packages: A source package is a compressed file that contains the source code of the application, a brief description of the package, and instructions on how to build the application.
Different Linux distributions have their own package managers and here, we are going to look at 2 Linux families: Debian and Red Hat.
Debian Package Management
Debian provides APT (Advanced Package Manager) as a front-end package management solution. It’s a powerful command-line utility that works with core libraries and allows you to download, install, update and remove packages from your system.
Install a Package in Debian/Ubuntu Systems
If you are coming from a Windows environment, you are used to downloading a .exe
package from a software vendor and running it on your system using an installation Wizard.
In Linux, installing an application is quite different. Software packages are downloaded and installed from online repositories using a package manager. The list of repositories is defined in the /etc/apt/sources.list file and /etc/sources.list.d directory.
On Debian-based distributions, the APT package manager is used to download and install packages from the online repositories. Not only does it install a package but also the dependencies required by the packages
It’s always recommended to update the repositories in the /etc/apt/sources.list file before installing any package. To accomplish this, run the command:
$ sudo apt update
To install a software package, use the syntax:
$ sudo apt package_name
For example, to install Apache web server, run the command:
$ sudo apt install apache2
Search a Package Before Installing
To search for the availability of a package in the repositories, use the syntax:
$ apt search package_name
For example, to search for the availability of the package called neofetch, run the command:
$ apt search neofetch
Show Information of Package
To display more information about a package, use the apt command as follows.
$ apt show package_name
For example, to reveal more information about the neofetch package, run:
$ apt show neofetch
Upgrade Packages in Ubuntu
To upgrade the installed packages on your system run the command:
$ sudo apt upgrade
Remove Package in Ubuntu
To remove a software package, say apache2 run the command:
$ sudo apt remove apache2
To remove the package alongside the configuration files use the purge option as shown.
$ sudo apt purge apache2
The Dpkg Package Manager
Debian-based Linux distributions also offer the dpkg package manager. This is a low-level package manager that handles binary packages that do not require any dependencies during installation. If dpkg detects that a binary package file requires dependencies, it reports the missing dependencies and halts.
To install a package from a .deb file use the dpkg command as follows:
$ sudo dpkg -i package.deb
For example, to install the AnyDesk package from its Debian file shown, execute:
$ sudo dpkg -i anydesk_6.1.0-1_amd64.deb OR $ sudo dpkg --unpack anydesk_6.1.0-1_amd64.deb
To check if the package was installed, run the command:
$ sudo dpkg -l anydesk
To remove the package, use the -r
option as shown:
$ sudo dpkg -r anydesk
To remove the package alongside all its configuration files, use the -P
option for purging all the files associated with the package.
$ sudo dpkg -P anydesk
YUM / DNF and RPM Package Management
Modern RedHat Linux distributions such as RHEL & CentOS 8 and Fedora 21 and later versions use DNF (Dandified YUM) which is an upgrade of the now deprecated YUM package manager, which was the de facto package manager for older versions of Red Hat Linux distributions such as RedHat and CentOS 7.
Just like APT, the DNF or YUM package managers are used to install packages from online repositories.
Install Software Packages in CentOS
To install a package, use the syntax:
$ sudo dnf install package-name OR $ sudo yum install package-name (For older versions)
For instance, to install the Apache httpd package, run the command:
$ sudo dnf install httpd OR $ sudo yum install httpd
Search for a Software Package
You can also search for the availability of a package from the repositories as follows:
$ sudo dnf search mariadb
Update Software Packages
To update all packages to their latest version execute:
$ sudo dnf update OR $ sudo yum update
Remove Software Package
To remove a package run:
$ sudo dnf remove package_name OR $ sudo yum remove package_name
For example, to remove the httpd package, run
$ sudo dnf remove httpd OR $ sudo yum remove httpd
The RPM Package Manager
The rpm package manager is another open-source package management tool for handling .rpm binary packages on RedHat Linux distributions. Just like APT package manager rpm manages binary packages.
Install Software Package
To install an application using a .rpm
file, use the syntax below:
$ sudo rpm -i package_name
For instance, to install the AnyDesk application from the .rpm
file shown, run the command:
$ sudo rpm -i anydesk-6.1.0-1.el8.x86_64.rpm
To verify or check the presence of a software application on your system use the syntax:
$ sudo rpm -q package_name
For instance, to check if Anydesk is installed, run the command:
$ sudo rpm -q anydesk
To query all the present software packages, use the command:
$ sudo rpm -qa
Remove Software Package
To uninstall a package using the rpm command use the syntax:
$ sudo rpm -e package_name
For example:
$ sudo rpm -e anydesk
Conclusion
The apt, dpkg, rpm, dnf, and yum commands are handy command-line tools that can help you to install, update and remove software packages on your Linux system.