Software Installation
Chapter 10 — Installing Software
One of the most common questions from new Linux users is: "how do I install software?" The answer is quite different from Windows or macOS — and in many ways considerably easier. Linux doesn't involve hunting for installers on random websites, running unsigned .exe files, or clicking through wizard screens. Software comes from repositories — curated, verified collections maintained by your distro — and a package manager handles downloading, installing, and updating everything.
1. The Graphical Software Centre
Every major desktop distro ships a graphical app store. You can browse, search, install, and remove software entirely by clicking — no terminal required.
Ubuntu — GNOME Software
Open Ubuntu Software (the shopping bag icon) from the applications menu. Search for an application by name, click it, and click Install. You'll be asked for your password once. The application appears in your applications menu when done.
.deb package is
available. Snaps are larger and slower to start than native packages. If startup speed
matters, use the terminal with apt install to get the native package instead.
Linux Mint — Software Manager
Mint's Software Manager is widely regarded as the best graphical package manager on Linux. Open it from the taskbar or application menu. It shows user ratings, screenshots, and clear descriptions. Searches are fast and results come from Mint's repositories (traditional .deb packages, not Snaps). Click Install and enter your password.
Fedora — GNOME Software
Fedora uses GNOME Software, which draws from Fedora's RPM repositories and Flathub (the main Flatpak repository). Flatpak is Fedora's preferred format for third-party applications. Install the same way — search and click Install.
KDE Discover
KDE-based distros (Kubuntu, KDE Neon, openSUSE with KDE) use Discover, KDE's software centre. It supports both native packages and Flatpaks and has a similar browse-and-click interface.
2. apt — The Debian/Ubuntu Package Manager
apt (Advanced Package Tool) is the package manager for all Debian-based
distros — Ubuntu, Linux Mint, Pop!_OS, Zorin OS, and many others. It's the command you'll
see in most online guides for Ubuntu-based systems. You need sudo for any
command that modifies the system.
The essential apt commands
apt quick reference
| Command | What it does |
|---|---|
| sudo apt update | Refresh the list of available packages from repositories. Run before installing. |
| sudo apt install <pkg> | Download and install a package and all its dependencies. |
| sudo apt remove <pkg> | Uninstall a package, keeping configuration files. |
| sudo apt purge <pkg> | Uninstall a package and delete its configuration files. |
| sudo apt upgrade | Install available updates for all installed packages. |
| sudo apt autoremove | Remove orphaned packages no longer needed as dependencies. |
| apt search <term> | Search package names and descriptions. |
| apt show <pkg> | Display package details: description, size, dependencies, version. |
| dpkg -l | grep <name> | List installed packages matching a name. |
sudo apt update before sudo apt install.
Without it, apt uses a cached package list that may be days or weeks old, and will either
install an old version or fail to find the package entirely. It takes only a few seconds.
What are repositories and PPAs?
A repository (repo) is a server hosting a curated collection of packages. Your distro's official repositories contain thousands of tested, safe packages. Sometimes a package isn't in the official repos — perhaps it's too new, too niche, or proprietary. In those cases you can add a PPA (Personal Package Archive) — a third-party repository maintained by a developer or team.
3. dnf / yum — The Fedora/Red Hat Package Manager
dnf (Dandified YUM) is the package manager for Fedora, Red Hat Enterprise Linux,
AlmaLinux, Rocky Linux, and CentOS. It replaced the older yum command — on modern
systems yum is either an alias for dnf or not present. The concepts are
identical to apt; only the syntax differs slightly.
dnf install automatically refreshes
the package list before installing — you don't need a separate dnf update
step first (though dnf upgrade --refresh forces it). The command for updates
is dnf upgrade not dnf update (though both work on modern dnf).
4. Universal Package Formats
Native packages (deb, rpm) are tied to a specific distro family. Three newer formats aim to work on any Linux distro — solving the problem of software that isn't in your distro's repositories.
- Works on any distro
- Main source: Flathub (flathub.org)
- Runs in a sandbox — isolated from the system
- Apps update independently of the OS
- Slightly larger disk footprint (shared runtimes)
- Supported by Fedora, Mint, Pop!_OS by default
- Best for: desktop GUI apps not in repos
- Developed by Canonical (Ubuntu's maker)
- Source: Snap Store (snapcraft.io)
- Also sandboxed and self-contained
- Slower startup than Flatpak or native packages
- Larger package sizes
- Required for some Ubuntu defaults (Firefox)
- Linux Mint blocks Snaps by default
- One file = one complete application
- No installation needed — just download and run
- No package manager or root access required
- No automatic updates (check manually)
- Good for trying software without installing
- Popular with audio/video production tools
- Best for: occasional-use or portable apps
5. Flatpak in Detail
Flatpak is the recommended universal format for most users. Flathub (flathub.org) is the central repository with thousands of applications — including many that aren't in distro repositories or are more up-to-date there than in official repos.
Setting up Flatpak (Ubuntu)
Flatpak is pre-installed on Fedora and Linux Mint. On Ubuntu it needs a one-time setup:
Installing and managing Flatpaks
6. Snap in Detail
Snaps are pre-installed on Ubuntu. The snap command manages them from the terminal,
and many also appear in the Ubuntu Software Centre.
sudo snap set system refresh.hold="$(date --date='next month' +%Y-%m-%dT%H:%M:%S%:z)"
if it becomes a nuisance.
7. AppImage in Detail
AppImages work differently from Flatpak and Snap — there's no package manager involved
at all. You download a single .AppImage file, make it executable, and run it.
-
1Download the
.AppImagefile from the application's website. -
2Make it executable. Right-click the file in the file manager → Properties → Permissions → tick "Allow executing file as program". Or in the terminal:$ chmod +x ~/Downloads/SomeApp-x86_64.AppImage
-
3Run it by double-clicking in the file manager, or in the terminal:$ ./SomeApp-x86_64.AppImage
To remove an AppImage, simply delete the file. No uninstaller, no package manager — it leaves nothing behind.
--appimage-update), but many don't. For software you use regularly, Flatpak
is more convenient.
sudo apt install libfuse2.
8. Installing .deb and .rpm Files Directly
Some software (Google Chrome, VS Code, Discord, Slack) is distributed as a downloadable
.deb or .rpm file from the developer's website rather than through
a repository. This is similar to downloading an installer on Windows.
Installing a .deb file (Ubuntu/Mint)
Using apt install ./filename.deb (note the ./) is better than
dpkg -i because apt automatically installs any missing dependencies.
Installing a .rpm file (Fedora)
apt upgrade or dnf upgrade. Google Chrome and VS Code both do this —
after the first install you never need to download the file again; updates arrive through the
package manager.
9. Which Format Should You Use?
-
First choice:Native package (apt / dnf) — always prefer the distro's own repository if the software is there. Native packages are the best integrated, fastest, and smallest.
-
Not in repos?Flatpak from Flathub — the most widely supported universal format. Works on all distros, sandboxed, auto-updates. Check flathub.org before trying anything else.
-
Developer provides a .deb/.rpm?Download and install with apt/dnf — if the developer provides it directly (Chrome, VS Code, Slack), this is fine. It usually sets up a repo for future updates.
-
Ubuntu only, no alternative?Snap — use it when it's the only option, or when it's the most up-to-date version. Avoid when a Flatpak or native package exists.
-
Just trying something out?AppImage — download, run, delete. No installation, no cleanup. Good for testing before committing, or for tools you use rarely.
10. Keeping Software Up to Date
Regular updates keep your system secure and your software current. On a desktop system, your distro's update tool usually notifies you when updates are available. You can also update manually:
Chapter Summary
| Method | Command / tool | Best for |
|---|---|---|
| Graphical (Ubuntu) | Ubuntu Software / GNOME Software | Browsing and installing without using the terminal |
| Graphical (Mint) | Software Manager | Best graphical package manager; native .deb packages, ratings, screenshots |
| apt (terminal) | sudo apt install <pkg> |
All Debian/Ubuntu-based systems. Fast, precise, handles dependencies |
| dnf (terminal) | sudo dnf install <pkg> |
Fedora, AlmaLinux, Rocky Linux, RHEL |
| Flatpak | flatpak install flathub <id> |
Software not in repos; cross-distro; sandboxed; auto-updates |
| Snap | sudo snap install <pkg> |
Ubuntu-focused; some software only available as Snap |
| AppImage | Download → chmod +x → run |
Portable apps, one-off use, no installation required |
| .deb / .rpm file | sudo apt install ./file.deb |
Software distributed directly by developers (Chrome, VS Code) |
| Full update | sudo apt update && sudo apt upgrade -y && flatpak update -y |
Keep everything current — run weekly |