Appendix A
Appendix A — Useful Software Packages
This appendix is a curated reference of software packages organised by category. For each package the install command is given for both apt (Ubuntu, Debian, Linux Mint) and dnf (Fedora). Where a Flatpak version from Flathub is available and often preferable (more up to date, sandboxed), it is listed as an alternative in purple.
apt install (Ubuntu/Debian/Mint)
dnf install (Fedora)
flatpak install flathub (any distro)
Prefer native packages for system tools; Flatpak for desktop apps.
Command-line utilities, servers, and libraries are best installed with apt/dnf — they
integrate with the system and update with everything else. For desktop apps like browsers,
office suites, and media players, the Flatpak version is often newer and better sandboxed.
Internet & Communication
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| Firefox GUI | The default browser on most distros. Installed by default on Ubuntu, Mint, Fedora. | apt install firefox | dnf install firefox | org.mozilla.firefox |
| Chromium GUI | The open-source base of Google Chrome. Privacy-focused alternative. | apt install chromium-browser | dnf install chromium | org.chromium.Chromium |
| Thunderbird GUI | Email client from Mozilla. Handles multiple accounts, calendars, RSS feeds. | apt install thunderbird | dnf install thunderbird | org.mozilla.Thunderbird |
| Discord GUI | Voice, video, and text chat platform. Download .deb from discord.com, or use Flatpak. | apt install ./discord.deb | dnf install ./discord.rpm | com.discordapp.Discord |
| Signal GUI | Encrypted messaging desktop client. Flatpak is the easiest install method. | — (use Flatpak) | — (use Flatpak) | org.signal.Signal |
| wget CLI | Download files from the terminal. Supports resuming interrupted downloads. | apt install wget | dnf install wget | — |
| curl CLI | Transfer data with URLs. Used for downloading files and testing APIs. | apt install curl | dnf install curl | — |
| nmap CLI | Network scanner. Discover devices and open ports on your local network. | apt install nmap | dnf install nmap | — |
Office & Productivity
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| LibreOffice GUI | Full office suite: Writer (Word), Calc (Excel), Impress (PowerPoint), Base (Access). Pre-installed on many distros. | apt install libreoffice | dnf install libreoffice | org.libreoffice.LibreOffice |
| OnlyOffice GUI | Office suite with excellent Microsoft Office compatibility. Good if you share .docx/.xlsx files frequently. | — (use Flatpak) | — (use Flatpak) | org.onlyoffice.desktopeditors |
| Obsidian GUI | Markdown-based note-taking app with a graph view. Local files, no cloud required. | — (use Flatpak) | — (use Flatpak) | md.obsidian.Obsidian |
| Evince GUI | GNOME's document viewer for PDF, PostScript, and more. Lightweight and fast. | apt install evince | dnf install evince | org.gnome.Evince |
| Okular GUI | KDE document viewer. Opens PDF, EPUB, CBR, ODT, and many other formats. | apt install okular | dnf install okular | org.kde.okular |
| Calibre GUI | E-book manager and converter. Manages your library and converts between formats (EPUB, MOBI, PDF). | apt install calibre | dnf install calibre | — |
Media & Entertainment
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| VLC GUI | The universal media player. Plays virtually every video and audio format without extra codecs. | apt install vlc | dnf install vlc | org.videolan.VLC |
| mpv GUI | Lightweight, keyboard-driven video player. Preferred by power users; excellent hardware decoding. | apt install mpv | dnf install mpv | io.mpv.Mpv |
| Rhythmbox GUI | GNOME music player and library manager. Pre-installed on Ubuntu. | apt install rhythmbox | dnf install rhythmbox | org.gnome.Rhythmbox3 |
| Spotify GUI | Spotify desktop client. Flatpak is the recommended install on Linux. | — (use Flatpak) | — (use Flatpak) | com.spotify.Client |
| Handbrake GUI | Video transcoder. Convert videos between formats, compress for web, rip DVDs. | apt install handbrake | dnf install handbrake-gui | fr.handbrake.ghb |
| ffmpeg CLI | Powerful command-line media conversion and processing tool. Used by many other apps internally. | apt install ffmpeg | dnf install ffmpeg | — |
| yt-dlp CLI | Download videos and audio from YouTube and hundreds of other sites. | apt install yt-dlp | dnf install yt-dlp | — |
| Steam GUI | Gaming platform from Valve. Excellent Linux support via Proton. Flatpak recommended for sandboxing. | apt install steam | — (use Flatpak) | com.valvesoftware.Steam |
Graphics & Image Editing
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| GIMP GUI | GNU Image Manipulation Program. Full-featured raster image editor — the Linux equivalent of Photoshop. | apt install gimp | dnf install gimp | org.gimp.GIMP |
| Inkscape GUI | Professional vector graphics editor. Works with SVG files. The Linux equivalent of Illustrator. | apt install inkscape | dnf install inkscape | org.inkscape.Inkscape |
| Darktable GUI | RAW photo editing and darkroom software. Comparable to Adobe Lightroom. | apt install darktable | dnf install darktable | org.darktable.Darktable |
| Krita GUI | Digital painting and illustration app. Excellent brush engine; popular with artists and animators. | apt install krita | dnf install krita | org.kde.krita |
| Shotwell GUI | Simple photo organiser and basic editor. Good for managing a personal photo library. | apt install shotwell | dnf install shotwell | org.gnome.Shotwell |
| ImageMagick CLI | Command-line image manipulation. Resize, convert, crop, and process images in bulk scripts. | apt install imagemagick | dnf install ImageMagick | — |
Development Tools
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| VS Code GUI | Microsoft's popular code editor. Download .deb/.rpm from code.visualstudio.com, or use Flatpak. | apt install ./code.deb | dnf install ./code.rpm | com.visualstudio.code |
| build-essential CLI | Meta-package that installs gcc, g++, make, and other essential C/C++ build tools. Install this first when compiling from source. | apt install build-essential | dnf groupinstall "Development Tools" | — |
| git CLI | The standard version control system. Required for almost all development work. | apt install git | dnf install git | — |
| python3-pip CLI | Python package installer. Install Python libraries with pip install package-name. |
apt install python3-pip | dnf install python3-pip | — |
| nodejs / npm CLI | JavaScript runtime and package manager. Use NodeSource repo or nvm for a more up-to-date version. | apt install nodejs npm | dnf install nodejs npm | — |
| Docker CLI | Container platform. Install via Docker's official script or apt repo — not the distro's version, which is outdated. | curl -fsSL https://get.docker.com | sh | dnf install docker-ce (Docker repo) | — |
| sqlite3 CLI | Lightweight, self-contained SQL database engine. Useful for development and scripting. | apt install sqlite3 | dnf install sqlite | — |
| meld GUI | Visual diff and merge tool. Compare files, directories, and version-controlled projects side by side. | apt install meld | dnf install meld | org.gnome.meld |
System & Administration
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| htop CLI | Interactive process viewer — a much friendlier version of top. Colour-coded, sortable, shows CPU per core. |
apt install htop | dnf install htop | — |
| btop CLI | Modern, visually rich resource monitor. Shows CPU, memory, disk I/O, and network in a single terminal view. | apt install btop | dnf install btop | — |
| ncdu CLI | Interactive terminal disk usage analyser. Navigate directories with arrow keys to find space hogs. | apt install ncdu | dnf install ncdu | — |
| tmux CLI | Terminal multiplexer. Split your terminal into panes, keep sessions running after disconnecting from SSH. | apt install tmux | dnf install tmux | — |
| rsync CLI | Fast, incremental file synchronisation. Used for backups and copying large directories efficiently. (Usually pre-installed.) | apt install rsync | dnf install rsync | — |
| ufw CLI | Uncomplicated Firewall — easy front-end for iptables. Covered in Chapter 12. Pre-installed on Ubuntu. | apt install ufw | — (use firewalld) | — |
| GParted GUI | Graphical partition editor. Resize, create, delete, and format disk partitions. Essential for disk management. | apt install gparted | dnf install gparted | — |
| Timeshift GUI | System snapshot and restore tool. Like Windows System Restore. Pre-installed on Mint. Covered in Chapter 13. | apt install timeshift | — (use Snapper) | — |
| BleachBit GUI | System cleaner. Removes browser caches, temp files, old logs. Frees disk space safely. | apt install bleachbit | dnf install bleachbit | — |
| smartmontools CLI | Read SMART health data from hard drives and SSDs. Detect failing drives before they die. | apt install smartmontools | dnf install smartmontools | — |
Terminal Extras
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| zsh CLI | Alternative shell to bash. Powerful tab completion, history, and theme support. Pair with Oh My Zsh for plugins. | apt install zsh | dnf install zsh | — |
| bat CLI | cat with syntax highlighting, line numbers, and git diff integration. Drop-in replacement for cat. |
apt install bat | dnf install bat | — |
| fzf CLI | Fuzzy file finder for the terminal. Press Ctrl+R for fuzzy history search; integrates with vim and tmux. | apt install fzf | dnf install fzf | — |
| ripgrep CLI | Extremely fast recursive text search. Respects .gitignore. Much faster than grep for large codebases. | apt install ripgrep | dnf install ripgrep | — |
| tree CLI | Display directory contents as an indented tree. tree -L 2 shows two levels deep. |
apt install tree | dnf install tree | — |
| jq CLI | Command-line JSON processor. Parse, filter, and format JSON output from APIs and config files. | apt install jq | dnf install jq | — |
| neofetch CLI | Display system information (distro, kernel, DE, RAM, CPU) alongside an ASCII art logo. A classic. | apt install neofetch | dnf install neofetch | — |
| tldr CLI | Simplified man pages with practical examples. tldr tar shows the 5 most useful tar commands instead of the full manual. |
apt install tldr | dnf install tldr | — |
Multimedia Codecs
Out of the box, Ubuntu and Mint can't play MP3s, H.264 video, or DVDs due to patent restrictions. Install the restricted extras package to add these codecs:
# Ubuntu — installs MP3, H.264, AAC, and other codecs + Microsoft fonts
$ sudo apt install ubuntu-restricted-extras
# Linux Mint — same effect
$ sudo apt install mint-meta-codecs
# Fedora — enable RPM Fusion first, then install codecs
$ sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 lame
# DVD playback (libdvdcss — Debian/Ubuntu only, legal in most countries)
$ sudo apt install libdvd-pkg && sudo dpkg-reconfigure libdvd-pkg
Why aren't codecs included by default? Some codecs (MP3, H.264, AAC)
are covered by software patents in certain countries. Ubuntu and Mint ship without them
to avoid legal issues, but provide an easy way to install them. Fedora's RPM Fusion
repository handles the same problem. Once installed, media playback "just works."
Virtual Machines & Remote Access
| Package | Description | apt | dnf | Flatpak alternative |
|---|---|---|---|---|
| VirtualBox GUI | Run Windows or other Linux distros in a virtual machine. Download from virtualbox.org for the latest version. | apt install virtualbox | dnf install virtualbox | — |
| GNOME Boxes GUI | Simple VM manager using KVM/QEMU. Easier than VirtualBox for running Linux VMs. Native to GNOME. | apt install gnome-boxes | dnf install gnome-boxes | org.gnome.Boxes |
| openssh-server CLI | Run an SSH server on your machine so you can log in remotely from other computers. | apt install openssh-server | dnf install openssh-server | — |
| Remmina GUI | Remote desktop client. Connect to Windows machines via RDP, or other Linux machines via VNC or SSH. | apt install remmina | dnf install remmina | org.remmina.Remmina |
Quick Install Blocks
Copy-paste these blocks to set up a fully-equipped system in one go.
Ubuntu / Mint — essential desktop setup
$ sudo apt update && sudo apt install -y \
vlc gimp inkscape libreoffice \
htop btop ncdu tmux tree bat fzf ripgrep jq tldr neofetch \
git build-essential curl wget rsync \
python3-pip sqlite3 \
ubuntu-restricted-extras
Fedora — essential desktop setup
# Enable RPM Fusion first
$ sudo dnf install -y \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install -y \
vlc gimp inkscape libreoffice \
htop btop ncdu tmux tree bat fzf ripgrep jq tldr neofetch \
git curl wget rsync \
python3-pip sqlite \
gstreamer1-plugins-good gstreamer1-plugins-bad-free lame
Flatpak essentials (any distro)
# Add Flathub if not already set up
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Install popular apps
$ flatpak install -y flathub \
org.mozilla.firefox \
org.mozilla.Thunderbird \
org.libreoffice.LibreOffice \
org.videolan.VLC \
org.gimp.GIMP \
com.spotify.Client \
com.valvesoftware.Steam \
md.obsidian.Obsidian
Next: Appendix B — Terminal command cheat sheet.
A quick-reference card for the most useful Linux terminal commands, organised by task.