Linux · How-To
How to Install Software on Linux
On Linux you almost never download an installer from a website the way you do on Windows. Software comes from your distribution’s own repository, reached either through a graphical software centre or a one-line package manager command — apt, dnf or pacman, depending on your distro. When something is missing from that catalogue, fall back to a universal format (a Flatpak from Flathub, a Snap, or a portable AppImage) and, only as a last resort, to a downloaded .deb or .rpm file.
The short answer: on Linux you almost never download an installer from a website the
way you do on Windows. Instead you install from your distribution's own repository — a curated,
security-checked catalogue of software — either through a graphical software centre or a
one-line package manager command (apt, dnf or
pacman, depending on your distro). When something is missing from that catalogue, you fall back
to a universal format — Flatpak from Flathub, a Snap, or a portable AppImage — or, as a
last resort, a downloaded .deb or .rpm package file. This guide covers every one
of those routes and, crucially, when to use each.
Because Linux is not one operating system but a family of distributions, the exact command depends on which one you run. The three big families in 2026 are the Debian/Ubuntu family (Ubuntu 26.04 LTS "Resolute Raccoon", Debian 13 "Trixie", Linux Mint, Pop!_OS), the Fedora/RHEL family (Fedora 44, RHEL, Rocky, AlmaLinux; openSUSE is close), and Arch (Arch Linux, EndeavourOS, Manjaro). Where it matters, we give the command for each.
Open a terminal and run cat /etc/os-release. The ID and
ID_LIKE lines tell you the family — for example ID_LIKE=debian means you use
apt, while ID=fedora means dnf.
1. The graphical software centre (easiest)
Every mainstream desktop ships an app store: GNOME Software on Ubuntu, Fedora and others, KDE Discover on Plasma desktops, and Mint's Software Manager. It is the closest thing to the Microsoft Store, and for most users it is all you ever need.
- Open the software centre from your applications menu (search for "Software", "Discover" or "Software Manager").
- Search for the app you want — for example VLC or GIMP.
- Click Install. You will be asked for your password once; that is the graphical
equivalent of
sudo. - When it finishes, the app appears in your applications menu. Updates arrive automatically through the same tool.
On many systems the software centre quietly offers the same app from more than one source — the distro repository, Flatpak and sometimes Snap. If you see a source dropdown, the plain distro package or the Flatpak from Flathub are the safe default choices.
2. The package manager (the Linux way)
The package manager is the engine underneath the software centre, and running it directly in a terminal is faster and completely scriptable. Each family has its own tool, but the pattern is the same: refresh the catalogue, then install by name. Package managers automatically resolve and install dependencies — the shared libraries an app needs — which is why you rarely hunt for "prerequisites" on Linux.
Debian & Ubuntu family — apt
sudo apt update
sudo apt install vlcSearch with apt search vlc and remove with sudo apt remove vlc. Debian 13 and
Ubuntu 26.04 ship APT 3.0, which adds a clearer, colourised summary before it makes changes.
Fedora & RHEL family — dnf
sudo dnf install vlcSearch with dnf search vlc and remove with sudo dnf remove vlc. Fedora 43 and
44 use DNF5, a faster rewrite; the commands above are unchanged. On openSUSE the equivalent tool is
zypper (sudo zypper install vlc).
Arch family — pacman
sudo pacman -Syu
sudo pacman -S vlcSearch with pacman -Ss vlc and remove with sudo pacman -Rns vlc. On Arch,
always sync the full system (-Syu) rather than updating a single package, because it is a
rolling release and partial updates can break things.
sudo, and never blind-paste commands
Installing from your distro's repositories with sudo is normal and safe. The danger is
running commands you do not understand. Never paste a sudo line from a random forum, comment
or chat message, and be extremely wary of anything containing rm -rf, dd, or
partition tools such as fdisk, parted or mkfs — those can wipe
files or entire disks with no undo and no recycle bin. Copy commands from official documentation, and
read what a command does before you run it.
3. Universal formats: Flatpak, Snap and AppImage
Distro repositories are curated but conservative — an app may be missing, an older version, or a proprietary product the distro cannot ship. Universal formats solve this by bundling an application together with its dependencies so a single build runs on any distribution, usually inside a sandbox that limits what the app can touch.
Flatpak (from Flathub)
Flatpak is the most widely recommended universal format on the desktop in 2026. Apps come mainly from Flathub, which passed 3,200 apps and 400 million-plus downloads. Flatpak is decentralised (anyone can host a repo), and its Bubblewrap-plus-portals sandbox is the most granular permission model of the three. Many distros ship it pre-configured; if not, add Flathub once:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.videolan.VLC
flatpak run org.videolan.VLCUpdate everything with flatpak update — that trio of
install, run and update commands is the core workflow in the official Flatpak documentation.
Once installed, Flatpak apps normally appear in your
menu like any other app, so you rarely need flatpak run by hand.
Snap
Snap is Canonical's format, centralised on the Snap Store and pre-installed on Ubuntu. Snaps update themselves automatically in the background — Canonical's Snap documentation says updates are installed within six hours of a revision landing on a tracked channel — and use AppArmor confinement. They are strong on servers and IoT and for a few apps that are Snap-only.
sudo snap install vlcSearch with snap find vlc and remove with sudo snap remove vlc. On distros
other than Ubuntu you install snapd first from your package manager.
AppImage
An AppImage is a single self-contained file that needs no installation and no
sudo — you download it, make it executable, and run it as your normal user, which is
exactly the three-step sequence in the
official AppImage quickstart.
It is the
most portable option and the easiest to delete (just remove the file), but it is not sandboxed and
it does not update itself: security fixes only arrive when the developer ships a new file.
chmod +x SomeApp-x86_64.AppImage
./SomeApp-x86_64.AppImageOn the desktop, try Flatpak from Flathub first: broad catalogue, good sandboxing, predictable updates. Use a Snap when an app is only offered that way or you are on Ubuntu and it is the default. Keep AppImage for portable, run-once tools or testing a single version — just remember it will not auto-update.
4. Downloaded .deb and .rpm package files
Some vendors — Google Chrome, Zoom, Slack and similar — offer a downloadable package on their website.
The file type must match your distro family: .deb for Debian and Ubuntu,
.rpm for Fedora, RHEL and openSUSE. Do not mix them; a .deb will
not work on Fedora and vice-versa, and forcing it corrupts your package database.
The best way to install a downloaded package is to hand it to your package manager rather than a
low-level tool, so dependencies are resolved automatically. Point it at the file with a path
(the ./ matters):
# Debian / Ubuntu (.deb)
sudo apt install ./google-chrome-stable_current_amd64.deb
# Fedora / RHEL (.rpm)
sudo dnf install ./google-chrome-stable_current_x86_64.rpmMany vendor packages also add their own repository during install, so future updates then flow through
your normal apt or dnf update. You can use the low-level tools
sudo dpkg -i file.deb or sudo rpm -i file.rpm directly, but they do not fetch
missing dependencies — which is exactly why the apt/dnf route above is preferred.
Which method should I use?
- Start with the software centre or package manager. Repository packages are tested against your exact system and updated alongside everything else.
- If it's missing or too old, use Flatpak from Flathub. Same app, any distro, sandboxed and easy to update.
- Use Snap when it is the only or default option, especially on Ubuntu.
- Use an AppImage for portable, no-install tools you may only run once.
- Fall back to a
.deb/.rpmonly when a vendor ships the app exclusively that way — and match the file to your distro family.
New to the terminal generally? Our Linux hub collects beginner-friendly walkthroughs, and if you have just moved over from Windows the transition guides there explain the equivalents you are looking for.
Frequently asked
Which is the best way to install software on Linux?
For most people, install from your distribution's own repository first, using the graphical software centre or the package manager (apt, dnf or pacman). Those packages are tested against your system, updated with everything else, and need no extra setup. Reach for Flatpak from Flathub when the app you want is missing, out of date, or proprietary — it works the same on every distribution. Use a .deb, .rpm, Snap or AppImage only when the vendor ships the app that way and nothing else is available.
What is the difference between Flatpak and Snap?
Both are universal package formats that bundle an app with its dependencies and run it in a sandbox, so one build works across distributions. The main differences are governance and defaults. Flatpak is decentralised: Flathub is the main shop but anyone can host a repository, and its Bubblewrap sandbox with XDG portals is the more granular permission model. Snap is centralised on Canonical's Snap Store, updates automatically in the background, uses AppArmor confinement, and is the default extra format on Ubuntu. Flatpak is generally preferred on the desktop; Snap is common on Ubuntu and on servers and IoT devices.
Can I install a .deb file on Fedora or a .rpm file on Ubuntu?
Not directly, and you should not try. A .deb is built for Debian and Ubuntu family systems, and a .rpm is built for Fedora, RHEL and openSUSE family systems; they use different package databases and libraries. Mixing them breaks dependency tracking and can damage your system. If a vendor only ships the wrong format, look for a Flatpak, a Snap or an AppImage of the same app instead, since those run on any distribution.
Is it safe to run install commands with sudo?
Installing from your distribution's repositories or Flathub with sudo is routine and safe — that is how the system is designed to be updated. The risk is in what you run, not the word sudo itself. Never paste a sudo command you do not understand from a random forum or website, be especially careful with anything containing rm, dd or disk and partition tools, and prefer copying commands from official documentation. AppImages are unusual in that they need no sudo and no installation: you just make the file executable and run it as your normal user.
Browse all Linux guides on Windows Now, or head back to the Windows Now home.