Mastering Flatpak for RHCSA 10: A Complete Guide
Everything you need to know about Flatpak for the RHCSA exam and real-world RHEL 10 administration
Flatpak has officially entered the RHCSA certification objectives for RHEL 10, marking a significant shift in how Red Hat views application deployment. This guide covers everything you need to master Flatpak for both exam success and practical system administration.
Why Flatpak Matters for RHCSA 10
Red Hat’s inclusion of Flatpak in RHCSA objectives reflects modern Linux desktop management realities. While DNF manages system packages, Flatpak handles desktop applications with:
- Sandboxed security — Applications run in isolated containers
- Distribution independence — Same app works across distros
- Version flexibility — Multiple versions coexist without conflicts
- Simplified updates — Applications update independently from the OS
- Reduced dependency hell — Self-contained runtimes eliminate conflicts
For RHCSA candidates, Flatpak represents 5–10% of exam objectives. Expect tasks like adding remotes, installing applications, and troubleshooting basic issues.
Understanding Flatpak Architecture
Before diving into commands, understand Flatpak’s three core components:
1. Applications — The software you install (org.mozilla.Firefox, org.gimp.GIMP)
2. Runtimes — Shared libraries and frameworks (org.freedesktop.Platform, org.gnome.Platform)
3. Remotes — Repositories hosting Flatpak packages (Flathub, Fedora Flatpaks)
Think of it like this:
- DNF manages your OS foundation
- Flatpak manages user applications
- Both coexist peacefully on RHEL 10
Installing Flatpak on RHEL 10
Flatpak is available in the AppStream repository:
# Install Flatpak package
sudo dnf install -y flatpak# Verify installation
flatpak --version
# Output: Flatpak 1.15.6# Check current configuration
flatpak remotes
# Output: (empty on fresh install)
That’s it! Flatpak is now installed but has no remotes configured yet.
Adding Flatpak Remotes (Critical for Exam)
A “remote” is Flatpak’s equivalent of a DNF repository. Flathub is the primary source for Flatpak applications.
Adding Flathub System-Wide
# Add Flathub for all users (requires root)
sudo flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo# Verify remote was added
flatpak remotes# Output:
# Name Options
# flathub system
Adding Flathub for Current User Only
# Add Flathub for your user (no root required)
flatpak remote-add --if-not-exists --user flathub \
https://flathub.org/repo/flathub.flatpakrepo# Verify
flatpak remotes --user# Output:
# Name Options
# flathub user
Exam Tip: The --if-not-exists flag prevents errors if the remote already exists. Always use it on the exam!
Exploring Remote Contents
# List all applications in Flathub
flatpak remote-ls flathub# Search for specific applications
flatpak search firefox# Output:
# Name Description Application ID
# Firefox Web Browser org.mozilla.Firefox
# Firefox ESR Extended Support Release org.mozilla.FirefoxESR# Show detailed remote information
flatpak remote-info flathub org.mozilla.Firefox
Installing Flatpak Applications
Basic Installation
# Install Firefox from Flathub (system-wide)
sudo flatpak install flathub org.mozilla.Firefox# Install GIMP for current user only
flatpak install --user flathub org.gimp.GIMP# Install without confirmation prompts (useful for scripts)
flatpak install -y flathub org.libreoffice.LibreOffice
During installation, Flatpak automatically:
- Downloads the application
- Downloads required runtime if missing
- Verifies signatures
- Installs everything in proper locations
Understanding Application IDs
Flatpak uses reverse-DNS notation for unique identification:
org.mozilla.Firefox- Firefox browserorg.gimp.GIMP- GIMP image editororg.libreoffice.LibreOffice- LibreOffice suitecom.spotify.Client- Spotify client
Never guess application IDs on the exam — always search first:
flatpak search inkscape
# Use the exact Application ID from resultsListing Installed Applications
# List all installed Flatpak applications
flatpak list# List only applications (exclude runtimes)
flatpak list --app# Show detailed information including size
flatpak list --app --columns=name,application,version,size# Example output:
# Name Application ID Version Size
# Firefox org.mozilla.Firefox 121.0 262.3 MB
# GIMP org.gimp.GIMP 2.10.36 184.7 MB
Running Flatpak Applications
Command Line Execution
# Run Firefox
flatpak run org.mozilla.Firefox# Run with verbose output (useful for troubleshooting)
flatpak run --verbose org.mozilla.Firefox# Run in background
flatpak run org.mozilla.Firefox &
Desktop Integration
Most desktop environments automatically integrate Flatpak applications into application menus. After installation, Firefox appears in your applications menu like any native package.
Managing Flatpak Updates
Updating Applications
# Update all installed applications and runtimes
flatpak update# Update specific application
flatpak update org.mozilla.Firefox# Update without confirmation
flatpak update -y# Check for available updates without installing
flatpak update --no-deploy
Best Practice: Schedule weekly Flatpak updates alongside DNF updates:
#!/bin/bash
# update-system.sh
sudo dnf update -y
flatpak update -y
echo "System updates completed: $(date)"Managing Runtimes
# List installed runtimes
flatpak list --runtime# Example output:
# Freedesktop Platform org.freedesktop.Platform 23.08
# GNOME Platform org.gnome.Platform 45# Update only runtimes
flatpak update --runtime# Remove unused runtimes (saves disk space)
flatpak uninstall --unused# This removes runtimes no longer needed by any application
Removing Flatpak Applications
# Uninstall Firefox
sudo flatpak uninstall org.mozilla.Firefox# Remove application and its data
flatpak uninstall --delete-data org.mozilla.Firefox# Remove all unused applications and runtimes
flatpak uninstall --unused# Force removal without prompts
flatpak uninstall -y org.gimp.GIMP
Exam Tip: When uninstalling, Flatpak preserves application data by default. Use --delete-data only when explicitly asked to remove all traces.
Working with Application Information
# Show detailed information about an application
flatpak info org.mozilla.Firefox# Output includes:
# - Application ID
# - Version
# - Branch
# - Installation size
# - Runtime dependencies# Show application permissions
flatpak info --show-permissions org.mozilla.Firefox# List files installed by application
flatpak info --show-location org.mozilla.Firefox
Managing Flatpak Permissions (Advanced)
Flatpak’s security model uses sandboxing with controlled permissions.
Viewing Permissions
# Show current permissions for Firefox
flatpak info --show-permissions org.mozilla.Firefox# Typical output:
# [Context]
# shared=network;ipc;
# sockets=x11;wayland;pulseaudio;
# devices=dri;
# filesystems=xdg-download:rw;Modifying Permissions
# Grant home directory access to Firefox
flatpak override --user --filesystem=home org.mozilla.Firefox# Grant network access
flatpak override --user --share=network org.mozilla.Firefox# Restrict filesystem access
flatpak override --user --nofilesystem=home org.mozilla.Firefox# Reset all overrides to defaults
flatpak override --user --reset org.mozilla.Firefox# List all permission overrides
flatpak override --user --show
Real-World Scenario: An application can’t access your Downloads folder. Solution:
flatpak override --filesystem=xdg-download:rw org.example.AppSetting Up Local/Offline Flatpak Repositories
Critical for air-gapped environments or exam scenarios without internet.
Creating USB Installation Media
# On internet-connected system, create USB repository
mkdir -p /mnt/usb/flatpak-offline# Pull Firefox and dependencies to USB
flatpak create-usb /mnt/usb/flatpak-offline org.mozilla.Firefox# Pull multiple applications
flatpak create-usb /mnt/usb/flatpak-offline org.gimp.GIMP
flatpak create-usb /mnt/usb/flatpak-offline org.libreoffice.LibreOffice# Safely unmount
sync
umount /mnt/usb
Installing from USB on Offline System
# Mount USB drive
sudo mount /dev/sdb1 /mnt/usb# Add USB as remote
flatpak remote-add --user --no-gpg-verify usb-repo \
/mnt/usb/flatpak-offline# List available applications
flatpak remote-ls usb-repo# Install from USB
flatpak install usb-repo org.mozilla.Firefox# After installation, remove USB remote (optional)
flatpak remote-delete usb-repo
Exam Strategy: If the exam environment lacks internet, expect USB-based installation tasks. Practice this scenario thoroughly.
Troubleshooting Flatpak Issues
Application Won’t Start
# Run with verbose logging
flatpak run --verbose org.mozilla.Firefox# Check system logs
journalctl --user -xe | grep flatpak# Repair Flatpak installation
flatpak repair --user# For system-wide issues
sudo flatpak repair
Remote Repository Errors
# Verify remote configuration
flatpak remotes --show-details# Re-add remote if corrupted
flatpak remote-delete flathub
flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo# Test remote connectivity
flatpak remote-ls flathub | head
Permission Issues
# Application can't access files
# Solution: Grant filesystem access
flatpak override --filesystem=home org.app.Example# Application won't connect to network
# Solution: Grant network access
flatpak override --share=network org.app.Example# Reset if too many overrides cause issues
flatpak override --reset org.app.Example
Disk Space Problems
# Check Flatpak disk usage
du -sh ~/.local/share/flatpak
du -sh /var/lib/flatpak# Remove unused runtimes and applications
flatpak uninstall --unused# Clean up old versions
flatpak uninstall --delete-data old-app-name# Optimize repository (advanced)
ostree prune --repo=/var/lib/flatpak/repo --depth=1
RHCSA 10 Exam Scenarios
Here are realistic exam tasks you might encounter:
Scenario 1: Basic Setup
Task: Install Flatpak, add Flathub remote system-wide, and install Firefox.
sudo dnf install -y flatpak
sudo flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.mozilla.FirefoxTime: 3–4 minutes
Scenario 2: User-Level Installation
Task: Add Flathub for current user and install GIMP without root privileges.
flatpak remote-add --if-not-exists --user flathub \
https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.gimp.GIMPTime: 2–3 minutes
Scenario 3: Offline Installation
Task: Install LibreOffice from USB drive mounted at /mnt/usb.
flatpak remote-add --user --no-gpg-verify usb-repo /mnt/usb/flatpak-offline
flatpak install -y usb-repo org.libreoffice.LibreOffice
flatpak remote-delete usb-repoTime: 3–4 minutes
Scenario 4: Permission Management
Task: Grant Firefox access to home directory.
flatpak override --user --filesystem=home org.mozilla.FirefoxTime: 1 minute
Scenario 5: Maintenance
Task: Update all Flatpak applications and remove unused runtimes.
flatpak update -y
flatpak uninstall --unused -yTime: 2 minutes
Quick Command Reference
# Installation & Setup
sudo dnf install flatpak # Install Flatpak
flatpak remote-add --if-not-exists flathub URL # Add remote
flatpak remote-ls flathub # List remote apps# Application Management
flatpak search firefox # Search apps
flatpak install flathub org.mozilla.Firefox # Install app
flatpak list # List installed
flatpak list --app # Apps only
flatpak run org.mozilla.Firefox # Run app
flatpak update # Update all
flatpak uninstall org.mozilla.Firefox # Remove app# Maintenance
flatpak uninstall --unused # Remove unused
flatpak repair # Repair installation
flatpak info org.mozilla.Firefox # Show app info# Permissions
flatpak override --filesystem=home APP_ID # Grant home access
flatpak override --reset APP_ID # Reset permissions
flatpak info --show-permissions APP_ID # View permissions# Offline/USB
flatpak create-usb /mnt/usb APP_ID # Create USB repo
flatpak remote-add --no-gpg-verify name /path # Add local remote
Common Mistakes to Avoid
- Forgetting — if-not-exists: Always use it when adding remotes to prevent errors
- Not verifying installation: Always run
flatpak listafter installing - Mixing user and system installs: Be consistent unless exam specifies otherwise
- Guessing application IDs: Always search first with
flatpak search - Ignoring runtimes: They consume significant disk space — clean regularly
- Skipping — no-gpg-verify for local repos: Required for USB/local repositories
- Not testing after configuration: Always verify with a quick install/run test
Best Practices for Production
- Standardize installation scope: Choose user or system-wide and stick to it
- Schedule regular updates: Include Flatpak in your update procedures
- Monitor disk usage: Flatpak apps can be large (200–500MB each)
- Document permissions: Track permission overrides for security audits
- Use stable branches: Avoid beta/testing branches in production
- Maintain offline media: Keep USB installation media for disaster recovery
- Test before deployment: Verify applications work in your environment
- Clean regularly: Run
flatpak uninstall --unusedmonthly
Integration with DNF/RPM
Flatpak complements rather than replaces DNF:
Get LinuxCert Guru’s stories in your inbox
Join Medium for free to get updates from this writer.
Use DNF for:
- System libraries and services
- Command-line tools
- Server applications
- Core system components
Use Flatpak for:
- Desktop applications
- GUI tools
- Applications needing isolation
- Software requiring specific library versions
Example system:
# DNF manages system
sudo dnf install httpd postgresql-server vim# Flatpak manages desktop apps
flatpak install firefox gimp libreofficePractice Lab Exercise
Complete this 20-minute exercise to master Flatpak:
# 1. Install Flatpak (2 min)
sudo dnf install -y flatpak# 2. Add Flathub system-wide (2 min)
sudo flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo# 3. Install three applications (5 min)
sudo flatpak install -y flathub org.mozilla.Firefox
flatpak install --user -y flathub org.gimp.GIMP
sudo flatpak install -y flathub org.libreoffice.LibreOffice# 4. List and verify (2 min)
flatpak list
flatpak list --app# 5. Run applications (3 min)
flatpak run org.mozilla.Firefox &
flatpak run org.gimp.GIMP &# 6. Grant permissions (2 min)
flatpak override --filesystem=home org.mozilla.Firefox# 7. Update and cleanup (4 min)
flatpak update -y
flatpak uninstall --unused -y
Final Exam Tips
- Read carefully: Note whether installation should be user or system-wide
- Use tab completion:
flatpak install flathub org.moz<TAB>saves time - Verify each step: Run
flatpak listafter installations - Don’t panic on errors: Most issues resolve with
flatpak repair - Watch your time: Don’t spend >5 minutes on any single Flatpak task
- Use — if-not-exists: Prevents failures if remote already exists
- Remember -y flag: Skips confirmation prompts, saves exam time
- Check both scopes: Some tasks might require checking both user and system installs
Conclusion
Flatpak represents modern Linux application management — secure, isolated, and distribution-independent. For RHCSA 10, master the fundamentals: adding remotes, installing applications, basic troubleshooting, and offline installation.
The exam won’t test advanced Flatpak features like building packages or complex permission management. Focus on core operations you can execute confidently within 5 minutes.
Key takeaway: Flatpak is simpler than it looks. With the commands in this guide, you have everything needed for RHCSA success.
Practice these scenarios until they become muscle memory, and you’ll breeze through Flatpak exam objectives.
Ready for more RHCSA preparation? Check out our new flatpak hands-on lab at LinuxCert.Guru
Good luck on your RHCSA 10 exam!







