Docker
Docker Engine and Compose on Ubuntu, Debian, Fedora and Arch, plus post-install, rootless mode and fixes.
Open source software on Linux by category, with install and troubleshooting guides for Docker, Git, Firefox, VLC and common app formats.
Docker Engine and Compose on Ubuntu, Debian, Fedora and Arch, plus post-install, rootless mode and fixes.
Snap vs deb vs Flatpak, Mozilla's APT repository on Ubuntu and Debian, VA-API video acceleration and fixes.
Install Git on any distro, set up identity and SSH authentication, sign commits and fix common errors.
Install VLC with apt, dnf, pacman, Flatpak or Snap, add codecs and DVD support, and fix playback problems.
Most of the software available on Linux is free and open source, packaged by your distribution and installable in one command. That gives Linux a quiet advantage that other operating systems don't have: you rarely need to download an installer from a vendor's website. The trade-off is that the same program can be packaged under slightly different names on different distributions, and updated on different schedules.
The categories below cover the kind of software that comes up regularly in everyday desktop and server work. Each category points at the upstream project and at the usual package name on the major distributions.
Git is the de facto distributed version control system. It is available in every mainstream repository under the package name git. Most distributions also ship related tooling such as git-lfs and graphical front-ends in optional packages.
Python, Node.js, Ruby, Go and the JVM are available through standard packages on every major distribution. For pinned versions, language-specific version managers (such as pyenv or nvm) are usually a better fit than relying on the system package.
The GNU toolchain (gcc, make, binutils) is universally available. On Debian-family systems the meta-package build-essential pulls in everything needed to compile most software from source.
Docker and Podman both run natively on Linux. Podman is the default container runtime on the Red Hat family and supports rootless containers; Docker is more widely documented in tutorials. Both speak the same OCI image format.
Vim, Neovim and Emacs are in every repository. Visual Studio Code, JetBrains products and similar GUI editors are usually distributed as Flatpaks, Snaps or vendor-provided .deb / .rpm packages.
Bash is the default shell on most distributions. Many readers prefer Zsh or Fish; both can be installed from the package manager and set with chsh. See the commands reference for a practical overview.
Firefox is shipped by default on most Linux desktops and is available either as the distribution package or as the official Mozilla build. Chromium, the open source upstream for Google Chrome, is also packaged for every major distribution. Both browsers are available as Flatpaks, which is often the simplest way to get the latest version on a distribution with conservative repositories.
LibreOffice is the standard office suite on Linux and is preinstalled on most desktop distributions. It opens and saves Microsoft Office formats well enough for most everyday documents, with occasional layout differences in complex templates. Other widely-used productivity software includes Thunderbird for email and Calibre for ebooks.
VLC plays virtually every audio and video format without needing extra codecs. GIMP is the long-standing image editor; for vector work, Inkscape covers the same ground as commercial tools. Audacity handles audio recording and editing, and Kdenlive and Shotcut are the widely used free video editors. OBS Studio is the standard for screen capture and live streaming. Blender, while not Linux-specific, runs natively and is the standard for 3D modelling and rendering across operating systems.
The systemd service manager is part of the base system on every mainstream distribution; see the Linux kernel overview for context on what runs underneath it. Other widely-used system utilities include htop for process monitoring, tmux for session multiplexing, rsync for file synchronisation, and Timeshift for filesystem snapshots on Btrfs-formatted systems.
Almost every Linux distribution exposes its software through a package manager that talks to one or more repositories. The exact command depends on the distribution family rather than the application — the package managers comparison covers apt, dnf, pacman and zypper side by side. The everyday install command:
sudo apt update
sudo apt install <package-name>
sudo dnf install <package-name>
sudo pacman -S <package-name>
sudo zypper install <package-name>
In addition to the distribution's own repositories, two cross-distribution packaging systems are widely used:
flathub.org. Useful when you want a recent version of an application that the distribution package lags behind.Some upstream projects suggest installing their software by piping a shell script from a website directly into bash. This works, but it asks you to trust both the script and the connection. Where a packaged version exists in your distribution's repositories or on Flathub, prefer it. If you do run an installation script, read it first.