Installing software on Linux is not limited to one method. You may choose the installation method depending on the source by how application the delivered or available. The most common way to install software packages is by using the package manager.
In this guide, we learn different ways to install software on Linux.
1. Package Manager
A package manager is a software tool that allows users to install, upgrade, search, download and remove software packages on an operating system.
The package manager helps to pull software from Distribution repositories using the command line or graphical interface. A repository is a centralized storage location for Linux distribution to keep essential software applications. Each distribution had its own standard repositories (official repositories).
Learn how to install software using common package managers.
Short for Advanced Package Tool, APT is the package manager for Debian and Ubuntu Linux distributions. It is a more advanced front-end for dpkg - the lowest level base for Debian package management. With APT packages are downloaded from Debian / Ubuntu online repositories and stored in the /etc/apt/sources.list.d/ directory or /etc/apt/sources.list file.
To install software packages using APT, first, refresh the local package lists.
sudo apt update
Next, install your preferred software package using the following syntax
sudo apt install package-name
For example, to install the Apache web server, type:
sudo apt install apache2
YUM (Yellow Dog Updater), just like APT, is an advanced front-end for RPM which is the most basic package management utility for RHEL-based distributions. YUM derives packages from online package repositories from the distribution vendor or third-party vendors.
Like APT, YUM allows you to perform tasks such as searching, installing, updating, removing, and downloading packages from official repositories as well as installing packages from .rpm files.
With YUM, you can opt to upgrade all the packages and repositories in the system.
sudo yum update
Next, install your preferred package using the following syntax
sudo yum install package-name
For example, to install git, run the command:
sudo yum install git
As earlier pointed out, DNF ( Dandified Yum ) is the replacement of YUM in newer RHEL-based Linux distributions. It is the improved version in terms of performance and the ability to resolve dependency conflicts. It was first introduced in Fedora 18 and later featured in later versions of Fedora, CentOS Stream and RHEL.
Nowadays, all RHEL distributions such as Rocky Linux, AlmaLinux, and CentOS Stream used DNF as the de facto management tool.
With DNF, the syntax for package management is the same. For example, to upgrade packages to their latest versions, run:
sudo dnf update
To install a software package, run the command:
sudo dnf install package-name
For example, to install the Apache webserver run the command:
sudo dnf install httpd
ZYpp is a package manager engine for SUSE Linux Enterprise and the OpenSUSE family of Linux distributions. Zypper is the command-line interface of the ZYpp package manager.
Yast ( Yet Another Setup Tool) is its graphical equivalent of Zypper. It allows users to manage packages from a graphical interface, configure hardware, set up network devices and services, and configure users.
sudo zypper install package-name
For example, to install Firefox, type:
sudo zypper install MozillaFirefox
2. Package File that can be Downloaded
Some applications are available from the software's official website as a downloadable file. In most cases, you will get a download link to download the package as a binary in the form of a tarball file or a Debian file ( .deb ), or RPM file (.rpm). Be sure to select the package that matches your distribution's architecture.
For .deb file use dpkg tool, .rpm file use rpm tool. You may also install using GUI by double clicking the downloaded file.
Install .deb file using dpkg
Debian packages ( those that have a .deb file extension ) are installed using the dpkg package manager.
sudo dpkg -i sample_package.deb
For example to install Google Chrome using its Debian package, execute
sudo dpkg -i google-chrome-stable_current_amd64.deb
Alternatively, you can install it as follows:
sudo apt install ./google-chrome-stable_current_amd64.deb
Install .rpm file using RPM
To install a package that comes as an RPM file ( .rpm ) use the syntax:
sudo rpm -i sample_package.rpm
For example to install slack using an RPM file, run
sudo rpm -i slack-4.23.0-0.1.fc21.x86_64.rpm
4. Additional Repositories
By default when using package manager, the packages are installed from the official repositories. Some Linux distros name this additional repo as third-party repositories. You can include additional repositories to add more packages that are not available in the official repo.
To install software from additional repositories, it should be first enabled. Check the third-party repo website for the instructions. Some repositories can be enabled from the Software app itself.
Some of the commonly used extra repositories are:
- EPEL for Redhat-based Linux distributions such as Rocky Linux, AlmaLinux, and CentOS Stream.
- SlackBuilds - have a collection of scripts for Slackware.
- RPMFusion - provides pre-compiled software for the Fedora and current Red Hat Enterprise Linux.
- PPA - Personal Package Archives are third-party repositories that allow developers and other independent users to create their own repositories and distribute software on Debian and Ubuntu.
5. Installing Linux Softwares Using GUI
Many prefer to install software using the command line. This is mainly because of the speed and convenience. Installing software from GUI depends on the desktop environment you are using.
Ubuntu Software Center is a graphical frontend to install free and paid applications. It comes preinstalled on the GNOME desktop. You can find the Software Center Icon on the Toolbar for easy access.
On Fedora the GNOME software:
6. Compile from Source
Ideally, you should be able to install your desired software from your distribution's official repositories. However, package maintainers cannot package all the software applications. There are some situations that will require you to compile and install the software manually without the help of a package manager. Compiling software from code is usually convenient when you want a specific software version.
The compiling process creates a binary executable file that can be readable for the machine. This file can only be executable for the system where you compile.
For compilation, you require an essential package installed on the system. For ubuntu is build-essential, for arch it is base-devel, which makes sure g++ package and required tools to compile are installed. The source package contains configure script and configure command use it to create the makefile file. The make tool uses makefile to compile the source code. Once the compilation is done, use make install in the terminal to install the package.
6. Install Windows Software on Linux
One of the concerns users transitioning to Linux have is if they will still be able to run Windows applications such as games and other programs. Thankfully, there are a couple of ways of running Windows programs on Linux. One of the most widely used platforms is Wine.
Wine ( Wine is Not an Emulator ) is a compatibility layer that allows users to run Windows applications on Linux. The applications range anything from games to video players, code editors, and other standard utilities. Wine acts as an interpreter that creates an execution layer on which Windows or .exe programs can run seamlessly. Wine provides the "Winelib" library that enables developers to package windows applications.
Make sure Wine is installed on your system. Once installed, download a Windows executable file and run the application as follows.
For example, to run Notepad++, download the executable file. Here we have downloaded the latest executable file from Github.
Then run the Notepad program as follows.
7. Universal package manager
If you noticed, you cannot install and use Ubuntu Software on OpenSUSE or RHEL, nor can you use DNF on Ubuntu. The Universal package management solutions were developed to address such issues: snap, flatpak and AppImage. These are distribution-independent package formats.
Snaps provide a cross-distribution solution for installing software packages on Linux distributions. Snaps are containerized software packages that bundle with the application’s binaries, libraries, dependencies, configuration files, and everything that is required for the application to run as expected.
To install a snap package, for example Spotify, run the command:
sudo snap install spotify
Flatpak is yet another software packaging and deployment tool that allows you to install and manage software packages regardless of the Linux distribution you are using. Flatpak applications run in a sandbox which is an isolated environment that contains everything needed to run the application. It includes bundled libraries and the runtime needed to fulfill all the prerequisites for running the application.
For example, to install Firefox as a flatpak run the command:
flatpak install flathub org.mozilla.firefox
To run the application, run the command:
flatpak run org.mozilla.firefox
AppImage is a format for binary distribution where an AppImage file packs everything that an application needs to run. An AppImage is simply an application you download and run without installing it on your system. AppImage files are lightweight and hence portable. They can even be run on live Linux sessions. You do not need root privileges to run an AppImage and uninstalling an application is just as simple as deleting the AppImage file.
An AppImage file format is just like exe Windows executable file. However, with the AppImage format no installation or extraction is required. You simply run the file.
To run the file, you first need to make the file executable. To do this Right Click on the file >> Properties >> Permission Tab >> Check “Allow executing the file as program".
With the execute permissions, you can now run the program by double-clicking on it.
Common mistakes during the installation of software on Linux
As easy as installing software on Linux may look, here are some of the pitfalls that some users.
- Forgetting to update the local package list.
- Not adding repositories for packages installed using external repositories.
- Installing packages for the wrong architecture.
- Deleting Make files when installing from the source.
- Ignoring graphical front-end package managers.
What kind of software can be installed on Linux?
Linux users can install any software application on Linux. There is no limit as to the kind of software you can install on a Linux system. Almost every category of applications you find in Windows or MAC can be installed on Linux.
Some of the software you can install on a Linux system:
Web browsers - In most modern Linux distributions, Firefox is the default browser. In addition, you can install other browsers such as Google Chrome, Chromium, Brave Browser, and even Microsoft Edge which now runs on Linux.
Games - Almost everyone likes games and thanks to improvements in Linux, you can easily install and play games better than before. You can install games using Wine as well as install Steam which is a gaming service that offers free and proprietary games.
Video Editing Software - For video editors, popular editing platforms such as Adobe Premiere. iMovie and Final Cut are not available on Linux. However, you can still popular alternatives such as KdenLive, Openshot, Shotcut, and Blender which are all free and open source.
Programming languages - With the passing of time, Linux has increasingly been adopted by developers and programmers as the system of choice for developing applications. As such, developers of programming languages have made it possible to install a wealth of programming languages such as Python, Java, Rust, PHP, Go, Node.JS, and many more.
- How to Install PHP on Ubuntu
- How to Install Node.js on Ubuntu
- How to Install Python on Ubuntu
- How to Install Laravel on Ubuntu
- How to Install ROS Noetic on Ubuntu
Standard Opensource Desktop applications - Linux desktop environments are replete with the software used for everyday use. Such applications include text editors, video layers, PDF viewers, music players, and so forth.
Virtual machines - You can easily run virtual machines on Linux thanks to cross-platform virtualization platforms such as VirtualBox and VMWare that provide intuitive and easy-to-use graphical interfaces to create virtual machines.
KVM ( Kernel Virtualization Manager ) is an open-source virtualization platform specifically for the Linux kernel that also allows you to create and manage virtual machines.
Other utilities you can install on Linux include Wine, Spotify for streaming music, IDEs such as Eclipse, Microsoft Visual Code, Web Servers (Apache and Nginx), Databases (MySQL, MariaDB), Firewall, and many more.
- How to Install Nginx on Ubuntu
- How to Install Apache on Ubuntu
- How to Install MySQL on Ubuntu
- How to Set Up a Firewall with UFW on Ubuntu
- How to Install Arduino IDE on Ubuntu
- How to Install vsftpd FTP Server on Debian
- How to Install AnyDesk on Ubuntu
Which Location software is installed on Linux?
Depending on the method of software applications installation directory varies. Package managers normally installed the program binaries in /usr/bin directory. The /opt is the directory reserved for software that is not part of the default installation. For snap, the files are stored in /var/lib/snapd/snaps.
In this guide, we learned different methods of installing software applications on a Linux system. From this, you may now know the installation is very simple and straightforward.
Please use the methods and lets us know your suggestions/feedback in the below comment section.