6.4 Install and Remove Flatpak Software Packages
Key Takeaways
- Install and remove Flatpak apps with flatpak install, uninstall, list, info, search, and update against configured remotes.
- Application IDs look like reverse-DNS names (org.example.App); runtimes install as dependencies when needed.
- Prefer system scope (sudo flatpak install --system) when tasks require machine-wide availability; verify with flatpak list.
- flatpak update refreshes apps and runtimes from remotes; it is separate from dnf update.
- Installed Flatpaks persist after reboot; confirm with flatpak list and, if needed, flatpak info before leaving the task.
6.4 Install and Remove Flatpak Software Packages
Quick Answer: After remotes exist, manage Flatpak software with
flatpak search,flatpak install,flatpak list,flatpak update,flatpak info, andflatpak uninstall. Use application IDs (for exampleorg.mozilla.firefox). System-wide installs typically need root. Installed apps and runtimes live on disk under Flatpak’s directories and persist after reboot.
Objective focus
Section 6.3 configured remotes. This section completes EX200’s Flatpak pair: install and remove Flatpak software packages (applications and, as needed, runtimes/extensions). Graders check whether the app is present for the required scope (system/user), not whether you used a GUI software center.
Discover applications
flatpak search inkscape
flatpak search firefox
flatpak remote-ls flathub | less
flatpak remote-ls flathub | grep -i vlc
search queries configured remotes’ metadata. remote-ls lists refs available on one remote—useful when search is noisy or the task gives a partial name.
Application identifiers use reverse-DNS style:
org.videolan.VLC
org.mozilla.firefox
org.gnome.Calculator
Tasks may give either a short name or a full ID. When ambiguous, install with the full ID and explicit remote:
sudo flatpak install flathub org.videolan.VLC
Install applications
# Interactive: Flatpak may ask for remote and which match if ambiguous
sudo flatpak install org.videolan.VLC
# Explicit remote + app id (best exam style)
sudo flatpak install flathub org.videolan.VLC
# Non-interactive assume yes
sudo flatpak install -y flathub org.videolan.VLC
# System vs user
sudo flatpak install --system flathub org.videolan.VLC
flatpak install --user flathub org.videolan.VLC
During install Flatpak may also pull:
- The runtime the app needs
- Locale or extension runtimes depending on defaults
- Related SDKs only if you install development refs (rare on RHCSA tasks)
Allow the transaction to complete; interrupting mid-download can leave partial state—rerun install or repair if needed.
Local Flatpak bundles (if the task provides a file)
sudo flatpak install --system /path/to/app.flatpak
# or .flatpakref files
sudo flatpak install --system /path/to/app.flatpakref
Follow the file type the exam provides. Bundles may still need a matching runtime from a remote.
List and inspect installed software
flatpak list
flatpak list --app # applications only
flatpak list --runtime # runtimes only
flatpak list --system
flatpak list --user
flatpak info org.videolan.VLC
flatpak info --show-permissions org.videolan.VLC # optional detail
Verification pattern for the exam:
flatpak list --app | grep -i VLC
flatpak info org.videolan.VLC
echo $?
If the task requires system install, verify with flatpak list --system while not relying on a different user’s --user install.
Update Flatpak software
flatpak update
sudo flatpak update # system scope updates as root
flatpak update org.videolan.VLC # one app
flatpak update is not dnf update. Run the correct tool for the packaging system. Updating may refresh both apps and runtimes from remotes.
Remove / uninstall
sudo flatpak uninstall org.videolan.VLC
sudo flatpak uninstall -y org.videolan.VLC
# Remove unused runtimes after apps are gone (when appropriate)
sudo flatpak uninstall --unused
Confirm removal:
flatpak list --app | grep -i VLC || echo "removed"
Caution: --unused removes runtimes no longer needed by remaining apps. Fine when cleaning a lab; on the exam, only use it if it does not conflict with other required apps still present.
Running apps (optional awareness)
flatpak run org.videolan.VLC
RHCSA tasks usually stop at installed/uninstalled state. Running GUI apps may require a desktop session; do not spend exam time launching GUIs unless verification requires it. CLI flatpak list / info is enough for package presence.
Permissions and portals (exam depth limit)
Flatpak sandboxes applications. Advanced permission tuning (flatpak override) exists but is beyond typical RHCSA install/remove wording. Only change overrides if a task explicitly demands filesystem or device access changes. Default install is usually sufficient for “install application X.”
End-to-end scenarios
Scenario A — Install from Flathub-style remote
Task: Ensure Flatpak remote flathub exists. Install org.gnome.gedit system-wide.
rpm -q flatpak || sudo dnf install -y flatpak
flatpak remote-list --system | grep -w flathub || \
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y --system flathub org.gnome.gedit
flatpak list --system --app | grep org.gnome.gedit
Scenario B — Remove an application
Task: Remove org.videolan.VLC if installed.
flatpak list --app | grep -i org.videolan.VLC
sudo flatpak uninstall -y org.videolan.VLC
flatpak list --app | grep -i org.videolan.VLC || echo OK
Scenario C — Mixed RPM + Flatpak task
Task: Install strace from RPM repos and install a Flatpak app from the training remote.
sudo dnf install -y strace
rpm -q strace
sudo flatpak install -y trainingremote org.example.Tool
flatpak list --app | grep org.example.Tool
Keep the tools straight: two package systems, two verify commands.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No remotes to search | Remote never added | Section 6.3 remote-add |
Need to be root | System install without privilege | sudo / root shell |
| Not found | Wrong id/remote; metadata stale | flatpak search; flatpak update; check remote name |
| Runtime dependency errors | Remote missing runtime | Enable correct remote; network |
| TLS/network failures | Firewall, proxy, bad URL | Fix network; confirm remote URL |
Installed as --user but graded system-wide | Wrong scope | Reinstall with --system |
flatpak repair --system # when installations look corrupted (use judiciously)
Persistence and EX200 scoring
- Flatpak installs write to system or user Flatpak directories—survive reboot.
- You do not
systemctl enablea Flatpak app for ordinary package credit. - You do ensure the scope matches the task (system vs user).
- After finishing, re-run
flatpak listbefore moving on; in full mocks, reboot once and re-check both RPM and Flatpak inventories when both were modified.
Interaction with SELinux and disk space
- Flatpak on RHEL runs in SELinux-enforcing environments by design; do not disable SELinux to “make Flatpak work.”
- Large runtimes consume disk under
/var/lib/flatpak—if installs fail with space errors,df -hand clean unused refs.
df -h /var/lib/flatpak
sudo flatpak uninstall --unused
Command cheat sheet
| Goal | Command |
|---|---|
| Search | flatpak search KEYWORD |
| Install | sudo flatpak install [-y] REMOTE APPID |
| List apps | flatpak list --app |
| Info | flatpak info APPID |
| Update all | sudo flatpak update |
| Remove | sudo flatpak uninstall [-y] APPID |
| Unused runtimes | sudo flatpak uninstall --unused |
Common traps
- Using
dnf install org.videolan.VLC— wrong packaging system. - User install when system was required (or the reverse).
- Stopping after download prompt denial — complete the transaction with
-yonly when sure. - Removing a runtime still needed by another app — check
flatpak listfirst. - Forgetting remote name in environments with multiple remotes and ambiguous short names.
- Skipping verification — always
flatpak list/infobefore claiming done.
Chapter synthesis: RPM + Flatpak on EX200
You now have the full Manage software skill set for RHCSA on RHEL 10:
- Configure RPM repos (
/etc/yum.repos.d/,dnf repolist) - Install/remove RPM packages (
dnf,rpm -q/-V) - Configure Flatpak remotes (
flatpak remote-add/remote-list) - Install/remove Flatpak apps (
flatpak install/uninstall/list/update)
Practice alternating tasks under a timer, and after every cluster reboot once to prove both DNF and Flatpak states remain. That habit matches how EX200 awards points for durable system administration.
Section checkpoint
You should search remotes, install and uninstall Flatpak applications by ID, update Flatpak software, list apps vs runtimes, choose system vs user scope correctly, verify presence after changes, and keep Flatpak operations distinct from DNF while using both on the same RHEL 10 exam system.
Which command installs a Flatpak application from the flathub remote using its application ID?
How do you confirm a Flatpak application is installed system-wide?
What is the correct tool to update installed Flatpak apps and runtimes?
An exam task requires removing a Flatpak app but leaving unrelated system RPMs untouched. Which command fits?