Linux, with its open-source flexibility and robust command-line interface, offers a powerful environment for a wide array of software. For users new to the platform, understanding how to install applications is a fundamental step in unlocking its potential. This guide will demystify the process, covering the most common and effective methods for getting the software you need onto your Linux system.
Understanding Linux Package Management
At its core, Linux relies on package managers to handle the installation, removal, and updating of software. These are sophisticated systems designed to streamline the process, ensuring that dependencies (other software components an application needs to run) are met and that your system remains organized and secure. Different Linux distributions often utilize different package management systems, but the underlying principles are similar.

Package Managers: The Gatekeepers of Software
The primary function of a package manager is to automate the installation of software packages. Instead of manually downloading, compiling, and configuring each piece of software, a package manager handles it all. It maintains a database of installed software, tracks versions, and resolves dependencies. This makes the entire software lifecycle on Linux significantly more manageable and less prone to errors.
Common Package Management Systems
- Debian-based distributions (e.g., Ubuntu, Linux Mint): These distributions primarily use the APT (Advanced Packaging Tool) system. APT works with
.debpackage files. - Red Hat-based distributions (e.g., Fedora, CentOS, Rocky Linux): These systems commonly employ YUM (Yellowdog Updater, Modified) or its successor, DNF (Dandified YUM). They work with
.rpmpackage files. - Arch Linux and derivatives (e.g., Manjaro): These use Pacman, known for its speed and simplicity, and also have the Arch User Repository (AUR) for community-maintained packages.
- Snap and Flatpak: These are universal package formats that aim to work across different Linux distributions, offering a more consistent installation experience and better sandboxing for security.
Repositories: The Software Libraries
Package managers connect to software repositories, which are essentially servers holding vast collections of pre-compiled software packages. When you request to install an application, your package manager queries these repositories, finds the correct version, downloads it, and then installs it along with any necessary dependencies. Most distributions come with a set of default repositories, and you can often add third-party repositories to access a wider range of software.
Installing Applications via the Command Line
The command line, often referred to as the terminal, is where the true power and efficiency of Linux package management shine. While graphical software centers are convenient, mastering command-line installations offers greater control, flexibility, and is often necessary for advanced tasks.
Using APT (Debian/Ubuntu/Mint)
APT is a powerful and widely used package management system. The core command is apt.
Updating Your Package Lists
Before installing anything, it’s crucial to update your local list of available packages from the repositories. This ensures you’re aware of the latest versions and can install them.
sudo apt update
sudo: This command allows you to run commands with superuser (administrator) privileges, which are necessary for modifying system files like package lists and installing software.apt update: This command downloads the package information from all configured sources.
Upgrading Installed Packages
Once your lists are updated, you can upgrade all installed packages to their latest available versions.
sudo apt upgrade
This command is highly recommended to keep your system secure and up-to-date.
Installing a New Application
To install a specific application, use the install command followed by the package name.
sudo apt install <package_name>
For example, to install the text editor nano:
sudo apt install nano
The system will prompt you to confirm the installation and any dependencies. Type Y and press Enter to proceed.
Searching for Packages
If you’re unsure of the exact package name, you can search for it:
apt search <keyword>
For instance, to find packages related to video editing:
apt search video-editor
Removing an Application
To remove an application and its configuration files:
sudo apt remove <package_name>
To remove an application and its configuration files, as well as any dependencies that are no longer needed by any other installed package:
sudo apt autoremove
Using DNF/YUM (Fedora/CentOS/Rocky Linux)
DNF is the modern successor to YUM, offering improved performance and dependency resolution. Commands are very similar.
Updating Your Package Lists and System
To update the package cache and upgrade all installed packages:
sudo dnf update
Or for YUM:
sudo yum update
Installing a New Application
To install an application using DNF:
sudo dnf install <package_name>
For example, to install nano:
sudo dnf install nano
Using YUM:
sudo yum install <package_name>
Searching for Packages
To search for packages:
dnf search <keyword>
Or with YUM:
yum search <keyword>

Removing an Application
To remove an application using DNF:
sudo dnf remove <package_name>
Using YUM:
sudo yum remove <package_name>
DNF (and YUM) also have an autoremove equivalent, though it’s often less explicit than apt autoremove and is generally handled by update.
Installing Applications via Graphical Software Centers
Most modern Linux distributions come with user-friendly graphical software centers that provide a visual interface for browsing, searching, and installing applications. These are excellent for casual users and offer a familiar experience akin to app stores on other operating systems.
Ubuntu Software Center / GNOME Software
Ubuntu’s default software center (often referred to as Ubuntu Software or GNOME Software) provides a curated selection of applications.
- Open the Software Center: Look for an icon labeled “Ubuntu Software” or “Software” in your application menu or dock.
- Browse or Search: You can browse categories like “Games,” “Productivity,” or “Utilities,” or use the search bar at the top to find a specific application.
- View Application Details: Clicking on an application will show you its description, screenshots, user reviews, and version information.
- Install: Click the “Install” button. You will likely be prompted for your user password to authorize the installation.
- Track Installation: The software center will show the progress of the download and installation. Once complete, the application will appear in your application menu.
Discover (KDE Plasma)
For users running the KDE Plasma desktop environment, the Discover application serves as their primary software portal.
- Launch Discover: Find “Discover” in your application launcher.
- Navigate: Similar to GNOME Software, you can browse categories or use the search functionality.
- Install: Select your desired application and click the “Install” button, entering your password when prompted.
Other Distribution-Specific Software Centers
Many other distributions have their own graphical software management tools. For example, Fedora Workstation often uses GNOME Software, while elementary OS has its own AppCenter, and Manjaro uses Pamac. The general workflow of browsing, searching, and clicking “Install” remains consistent.
Advanced Installation Methods: .deb, .rpm, and Source Code
While package managers are the preferred method, you might occasionally encounter situations where you need to install software from other sources.
Installing .deb Packages Manually (Debian/Ubuntu/Mint)
Sometimes, software vendors provide .deb files directly for download. You can install these using the dpkg command or, more conveniently, with apt.
-
Download the .deb file: Save it to a known location.
-
Open a terminal: Navigate to the directory where you downloaded the file.
-
Install using dpkg (basic):
sudo dpkg -i <package_file.deb>This might report missing dependencies.
-
Install using apt (recommended):
aptcan often handle dependency resolution even for manually installed.debfiles.sudo apt install ./<package_file.deb>The
./is important to indicate that you’re installing a local file. If dependencies are missing, you can often fix them with:sudo apt --fix-broken install
Installing .rpm Packages Manually (Fedora/CentOS/Rocky Linux)
Similarly, you might download .rpm files.
-
Download the .rpm file: Save it to a known location.
-
Open a terminal: Navigate to the directory where you downloaded the file.
-
Install using dnf:
sudo dnf install ./<package_file.rpm> -
Install using yum:
sudo yum install ./<package_file.rpm>
Compiling from Source Code
This is the most involved method and generally only necessary if pre-compiled packages aren’t available or if you need a very specific version or configuration. It involves downloading the source code, configuring it for your system, compiling it into an executable program, and then installing it.
-
Install Build Tools: You’ll need a compiler and other development tools. For Debian/Ubuntu:
sudo apt install build-essentialFor Fedora/CentOS:
sudo dnf groupinstall "Development Tools" -
Download Source Code: Obtain the source code archive (usually a
.tar.gzor.zipfile) from the project’s website. -
Extract the Archive:
tar -xzf <source_code.tar.gz> cd <extracted_directory> -
Configure: Run the
configurescript. This checks your system and prepares the build process../configureYou might see options here to customize the build.
-
Compile: Use
maketo compile the source code.makeThis can take a while.
-
Install: Use
make installto install the compiled program to your system.sudo make installThis typically installs the application to directories like
/usr/local/bin.
Universal Package Formats: Snap and Flatpak
Snap and Flatpak are modern packaging technologies designed to provide a consistent installation experience across different Linux distributions. They bundle applications with their dependencies, creating self-contained packages that run in a sandboxed environment, enhancing security and reducing conflicts.
Installing Snaps
Snaps are developed by Canonical (the creators of Ubuntu) but work on many other distributions.
-
Install
snapd(if not already present): Most modern Ubuntu versions have it. For other distros, you might need to install it first (e.g.,sudo apt install snapdon Debian,sudo dnf install snapdon Fedora). -
Search for a Snap:
snap find <application_name> -
Install a Snap:
sudo snap install <snap_name>For example, to install VLC:
sudo snap install vlc -
List Installed Snaps:
snap list -
Remove a Snap:
sudo snap remove <snap_name>

Installing Flatpaks
Flatpak is a community-driven project, widely supported across Linux distributions.
-
Install Flatpak: If not already installed, you’ll need to install the
flatpakpackage (e.g.,sudo apt install flatpak,sudo dnf install flatpak). -
Add a Repository (e.g., Flathub): Flathub is the primary repository for Flatpaks.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -
Search for a Flatpak:
flatpak search <application_name> -
Install a Flatpak:
flatpak install flathub <application_id>You can find the application ID on the Flathub website. For example, to install VLC:
flatpak install flathub org.videolan.VLC -
List Installed Flatpaks:
flatpak list -
Remove a Flatpak:
flatpak uninstall <application_id>
By understanding these various methods, you can confidently install almost any application you need on your Linux system, whether through convenient graphical interfaces or powerful command-line tools.
