Flatpak Cheatsheet: Universal Linux Package Manager
Cross-distro apps with Flatpak & Flathub
Flatpak is a next-generation technology for building and distributing desktop applications on Linux, offering universal packaging, sandboxing, and seamless cross-distribution compatibility.
Image is generated by AI model Flux 1 dev.
What is Flatpak?
Flatpak (formerly known as xdg-app) is a software utility for software deployment, application virtualization, and package management for Linux desktop computers. Developed by Alexander Larsson at Red Hat, Flatpak provides a sandbox environment in which users can run applications isolated from the rest of the system. Unlike other package managers, Flatpak uses shared runtimes and has no background daemon, making it lightweight while maintaining security through Bubblewrap sandboxing.
Key Characteristics:
- Shared Runtimes: Apps share base libraries (GNOME, KDE, Freedesktop), reducing total disk usage
- Manual Updates: You control when updates happen (no automatic background updates)
- Bubblewrap Sandboxing: Strong containerization with XDG Desktop Portals for permissions
- No Background Daemon: Lightweight, runs only when needed
- User-Level Install: Install apps without sudo/root access
- Decentralized: Open ecosystem, not controlled by a single company
- Desktop Focused: Ideal for GNOME and KDE desktop applications
Package Manager Comparison
Ubuntu supports multiple package management systems. Here’s how the main operations compare:
| Operation | Flatpak | APT | Snap |
|---|---|---|---|
| Search | flatpak search keyword |
apt search keyword |
snap find keyword |
| Install | flatpak install flathub app.id |
sudo apt install package |
sudo snap install package |
| List Installed | flatpak list --app |
apt list --installed |
snap list |
| Show Info | flatpak info app.id |
apt show package |
snap info package |
| Update All | flatpak update |
sudo apt update && sudo apt upgrade |
sudo snap refresh |
| Update Single | flatpak update app.id |
sudo apt install --only-upgrade pkg |
sudo snap refresh package |
| Remove | flatpak uninstall app.id |
sudo apt remove package |
sudo snap remove package |
| Clean Up | flatpak uninstall --unused |
sudo apt autoremove |
snap remove --revision=N |
| Repository | Add with flatpak remote-add |
/etc/apt/sources.list |
Snap Store (built-in) |
Quick Feature Comparison
| Feature | Flatpak | APT | Snap |
|---|---|---|---|
| Auto-updates | No | No | Yes |
| Sandboxing | Yes | No | Yes |
| Dependencies | Shared runtimes | System libraries | Bundled |
| Package Size | Medium (20-200MB) | Small (5-50MB) | Large (50-500MB) |
| Root Required | No (user install) | Yes | Yes |
| Startup Speed | Fast | Fast | Slower |
| Best For | Desktop apps | System packages | Universal apps |
About This Guide
This guide focuses on Flatpak - the decentralized universal package manager designed for desktop applications with granular permission control. Flatpak is ideal for GNOME and KDE applications, scenarios where you want manual control over updates, and when you need user-level installations without root access.
For other package managers:
- 📦 APT Package Manager Guide - Ubuntu’s traditional package management for system packages and libraries
- 📦 Snap Package Manager Guide - Universal packages with automatic updates and sandboxing
Each package manager has its strengths. Use Flatpak for desktop applications with fine-grained permissions, APT for system packages and libraries, and Snap for applications needing automatic updates and cross-version compatibility.
Flatpak Package Management - Detailed Guide
Installing Flatpak
Ubuntu and Debian-based Systems
If you’re setting up a fresh Ubuntu system, check out our comprehensive Ubuntu 24.04 installation guide for a complete walkthrough of system setup and essential tools.
Ubuntu 18.04+:
# Install Flatpak
sudo apt install flatpak
# Install GNOME Software plugin (for Ubuntu Software Center)
sudo apt install gnome-software-plugin-flatpak
# Add Flathub repository
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Restart system to complete setup
sudo reboot
Ubuntu 16.04:
# Add PPA for newer Flatpak
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
# Add Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Other Linux Distributions
Fedora (pre-installed on 25+):
# Flatpak pre-installed, just add Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Arch Linux:
# Install Flatpak
sudo pacman -S flatpak
# Add Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
openSUSE:
# Install Flatpak
sudo zypper install flatpak
# Add Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Linux Mint:
# Install Flatpak (pre-installed on Mint 18.3+)
sudo apt install flatpak
# Add Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
If you’re setting up Linux Mint from scratch, our Linux Mint reinstallation guide covers the installation process along with essential tools and configurations.
Verify Installation
# Check Flatpak version
flatpak --version
# List configured remotes
flatpak remotes
# Test installation
flatpak search gimp
Essential Flatpak Commands
Installing Applications
Basic Installation:
# Install from Flathub
flatpak install flathub app.id
# Install with confirmation
flatpak install -y flathub app.id
# Install specific version
flatpak install flathub app.id//version
# Install specific branch
flatpak install flathub app.id//stable
Real-World Examples:
# Install GIMP
flatpak install flathub org.gimp.GIMP
# Install VLC
flatpak install flathub org.videolan.VLC
# Install LibreOffice
flatpak install flathub org.libreoffice.LibreOffice
# Install VS Code
flatpak install flathub com.visualstudio.code
# Install Spotify
flatpak install flathub com.spotify.Client
# Install Discord
flatpak install flathub com.discordapp.Discord
# Install Telegram
flatpak install flathub org.telegram.desktop
# Install Blender
flatpak install flathub org.blender.Blender
# Install Kdenlive (video editor)
flatpak install flathub org.kde.kdenlive
# Install Inkscape
flatpak install flathub org.inkscape.Inkscape
User vs System Installation:
# User installation (default, no sudo needed)
flatpak install --user flathub app.id
# System-wide installation (requires sudo)
flatpak install --system flathub app.id
Searching for Applications
# Search Flathub
flatpak search keyword
# Search with columns output
flatpak search --columns=name,application,version,branch keyword
# Search in specific remote
flatpak search --remote=flathub keyword
# Examples
flatpak search editor
flatpak search video
flatpak search game
flatpak search office
Browse Flathub Online:
- Visit https://flathub.org
- Browse by categories
- View screenshots and descriptions
- Check ratings and reviews
Listing Installed Applications
# List all installed apps
flatpak list
# List only applications (not runtimes)
flatpak list --app
# List only runtimes
flatpak list --runtime
# Show detailed information
flatpak list --app --columns=name,application,version,size,installation
# List user installations only
flatpak list --user
# List system installations only
flatpak list --system
Viewing Application Information
# Show app details
flatpak info app.id
# Show permissions
flatpak info --show-permissions app.id
# Show metadata
flatpak info --show-metadata app.id
# Show commit information
flatpak info --show-commit app.id
# Show installed size
flatpak info --show-size app.id
# Example
flatpak info org.gimp.GIMP
flatpak info --show-permissions org.videolan.VLC
Running Applications
# Run flatpak application
flatpak run app.id
# Run with specific branch
flatpak run app.id//stable
# Run with command line arguments
flatpak run app.id --arg1 --arg2
# Run with environment variables
flatpak run --env=VAR=value app.id
# Run with specific commit
flatpak run --commit=abc123 app.id
# Examples
flatpak run org.gimp.GIMP
flatpak run org.videolan.VLC /path/to/video.mp4
flatpak run com.visualstudio.code ~/projects/
Application Integration:
Installed Flatpak apps appear in your application menu automatically. You can also create desktop shortcuts.
Updating Applications
Update All:
# Update all apps and runtimes
flatpak update
# Update without confirmation
flatpak update -y
# Update only applications
flatpak update --app
# Update only runtimes
flatpak update --runtime
# Update user installations
flatpak update --user
# Update system installations
flatpak update --system
Update Specific Application:
# Update specific app
flatpak update app.id
# Update to specific version
flatpak update app.id//version
# Example
flatpak update org.gimp.GIMP
Check for Updates:
# List apps with available updates
flatpak remote-ls --updates
# Check specific app
flatpak remote-info --log flathub app.id
Removing Applications
# Uninstall application
flatpak uninstall app.id
# Uninstall without confirmation
flatpak uninstall -y app.id
# Uninstall and remove data
flatpak uninstall --delete-data app.id
# Uninstall from user
flatpak uninstall --user app.id
# Remove unused runtimes and dependencies
flatpak uninstall --unused
# Remove all Flatpak apps
flatpak uninstall --all
# Example workflow
flatpak uninstall org.gimp.GIMP
flatpak uninstall --unused
Understanding Flatpak Architecture
Runtimes
Runtimes are shared base environments containing common libraries:
Major Runtimes:
- org.freedesktop.Platform: Base runtime with core libraries
- org.gnome.Platform: GNOME desktop libraries
- org.kde.Platform: KDE/Qt libraries
- org.freedesktop.Sdk: Development tools and libraries
Runtime Management:
# List installed runtimes
flatpak list --runtime
# Install specific runtime
flatpak install flathub org.gnome.Platform//45
# Check runtime size
flatpak info --show-size org.gnome.Platform
# Remove unused runtimes
flatpak uninstall --unused
Application IDs
Flatpak uses reverse-DNS notation for app IDs:
Format: tld.domain.AppName
Examples:
org.gimp.GIMPorg.mozilla.Firefoxcom.visualstudio.codeio.github.username.AppName
Branches and Versions
# List available branches
flatpak remote-info --log flathub app.id
# Install specific branch
flatpak install flathub app.id//stable
flatpak install flathub app.id//beta
# Switch branches
flatpak update --commit=branch-commit app.id
Remotes (Repositories)
# List configured remotes
flatpak remotes
# Add remote
flatpak remote-add --if-not-exists remote-name https://remote-url
# Remove remote
flatpak remote-delete remote-name
# Modify remote
flatpak remote-modify remote-name --url=new-url
# List apps in remote
flatpak remote-ls remote-name
# List only apps
flatpak remote-ls --app flathub
# Show remote info
flatpak remote-info flathub app.id
Popular Remotes:
- Flathub: Main repository (https://flathub.org)
- Flathub Beta: Beta applications
- GNOME Nightly: GNOME development builds
- KDE: KDE applications
- Fedora: Fedora registry
Permissions and Sandboxing
Understanding Portals
Flatpak uses XDG Desktop Portals for controlled system access:
Portal Types:
- File Chooser: Select files through host file picker
- Print: Access printing functionality
- Screenshot: Capture screen
- Screencast: Record screen
- Notification: Show notifications
- Device: Access devices (camera, microphone)
- Location: Access geolocation
- Network: Network access
Viewing Permissions
# Show app permissions
flatpak info --show-permissions app.id
# Show metadata
flatpak info --show-metadata app.id
# Example
flatpak info --show-permissions org.videolan.VLC
Permission Categories:
- Filesystem access:
--filesystem=home,--filesystem=host - Device access:
--device=dri,--device=all - Socket access:
--socket=x11,--socket=wayland,--socket=pulseaudio - Network:
--share=network - IPC:
--share=ipc
Managing Permissions with CLI
Grant Permissions:
# Grant home directory access
flatpak override --filesystem=home app.id
# Grant specific directory access
flatpak override --filesystem=/path/to/directory app.id
# Grant host filesystem access (use carefully)
flatpak override --filesystem=host app.id
# Grant device access
flatpak override --device=dri app.id
# Grant network access
flatpak override --share=network app.id
# Grant IPC access
flatpak override --share=ipc app.id
# Examples
flatpak override --filesystem=home org.gimp.GIMP
flatpak override --device=all org.audacityteam.Audacity
Revoke Permissions:
# Revoke filesystem access
flatpak override --nofilesystem=home app.id
# Revoke device access
flatpak override --nodevice=all app.id
# Reset all overrides to defaults
flatpak override --reset app.id
# View current overrides
flatpak override --show app.id
# Example
flatpak override --nofilesystem=host org.videolan.VLC
System-wide vs User Overrides:
# User-level override (default)
flatpak override --user --filesystem=home app.id
# System-wide override
sudo flatpak override --system --filesystem=home app.id
Managing Permissions with Flatseal (GUI)
Install Flatseal:
flatpak install flathub com.github.tchx84.Flatseal
Features:
- Visual permission management
- Toggle permissions on/off
- View all app permissions
- Reset to defaults
- User-friendly interface
Launch:
flatpak run com.github.tchx84.Flatseal
Or find “Flatseal” in your application menu.
Advanced Flatpak Usage
Command Line Options
Run with Custom Options:
# Run with specific filesystem access
flatpak run --filesystem=/mnt/data app.id
# Run with environment variables
flatpak run --env=DEBUG=1 app.id
# Run with different devel session
flatpak run --devel app.id
# Run specific command inside flatpak
flatpak run --command=bash app.id
# Run with verbose output
flatpak -v run app.id
# Examples
flatpak run --filesystem=/media/usb org.gimp.GIMP
flatpak run --command=sh com.visualstudio.code
Shell Access
# Open shell inside flatpak
flatpak run --command=sh app.id
# Run bash if available
flatpak run --command=bash app.id
# Access with full filesystem (for debugging)
flatpak run --filesystem=host --command=bash app.id
# Example: Debug GIMP environment
flatpak run --command=bash org.gimp.GIMP
Building and Installing Local Flatpaks
Install from .flatpak file:
# Install flatpak bundle
flatpak install package.flatpak
# Install from remote URL
flatpak install https://example.com/app.flatpakref
# Install from flatpakref file
flatpak install app.flatpakref
Install from Repository:
# Add custom repository
flatpak remote-add --if-not-exists custom-repo https://repo-url
# Install from custom repo
flatpak install custom-repo app.id
Exporting and Backing Up
Export Application:
# Create flatpak bundle
flatpak build-bundle repo-dir bundle.flatpak app.id
# Export ref
flatpak build-export repo-dir build-dir
# Create single-file bundle
flatpak create-usb /path/to/usb app.id
Backup Installed Apps:
# List installed apps
flatpak list --app --columns=application > flatpak-apps.txt
# Restore on another system
while read app; do
flatpak install -y flathub "$app"
done < flatpak-apps.txt
Downgrading Applications
# List available commits
flatpak remote-info --log flathub app.id
# Install specific commit
flatpak update --commit=commit-hash app.id
# Pin to current version (prevent updates)
flatpak mask app.id
# Unmask (allow updates)
flatpak mask --remove app.id
Troubleshooting Flatpak Issues
Common Problems and Solutions
Application Won’t Start
# Run with verbose output
flatpak run -v app.id
# Check permissions
flatpak info --show-permissions app.id
# Try resetting overrides
flatpak override --reset app.id
# Check if runtime is installed
flatpak list --runtime | grep Platform
# Reinstall application
flatpak uninstall app.id
flatpak install flathub app.id
Permission Denied Errors
# Grant necessary filesystem access
flatpak override --filesystem=home app.id
# Grant device access
flatpak override --device=all app.id
# Check current permissions
flatpak override --show app.id
# Use Flatseal for GUI management
flatpak run com.github.tchx84.Flatseal
Application Not Appearing in Menu
# Update desktop database
update-desktop-database ~/.local/share/applications
# Refresh icon cache
gtk-update-icon-cache ~/.local/share/icons/hicolor
# Restart desktop environment
# Or log out and log back in
Slow Downloads or Updates
# Check remote status
flatpak remote-ls flathub
# Clear cache
rm -rf ~/.local/share/flatpak/repo/tmp
# Try different mirror
flatpak remote-modify flathub --url=https://mirror.example.com
# Check network connection
flatpak remote-info flathub org.gimp.GIMP
Repository Errors
# Re-add Flathub
flatpak remote-delete flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Update repository metadata
flatpak update --appstream
# Repair installation
flatpak repair
# Check for ostree issues
ostree fsck --repo=/var/lib/flatpak/repo
Disk Space Issues
# Check Flatpak disk usage
du -sh ~/.local/share/flatpak
du -sh /var/lib/flatpak
# Remove unused runtimes
flatpak uninstall --unused
# Remove old versions
flatpak uninstall --delete-data app.id
# Clean up cache
rm -rf ~/.cache/flatpak
Debugging Commands
# Verbose run
flatpak run -v app.id
# Show debug output
flatpak run --log-session-bus --log-system-bus app.id
# Check Flatpak installation
flatpak info
# Repair Flatpak
flatpak repair --user
sudo flatpak repair --system
# Check OSTree
ostree --repo=/var/lib/flatpak/repo refs
# View Flatpak processes
ps aux | grep flatpak
Performance and Optimization
Reduce Disk Usage
Remove Unused Content:
# Remove unused runtimes
flatpak uninstall --unused -y
# Remove old versions
# Note: Flatpak doesn't keep multiple versions by default
# Clean temporary files
rm -rf ~/.cache/flatpak
Disk Usage Script:
#!/bin/bash
echo "=== Flatpak Disk Usage ==="
echo "System: $(du -sh /var/lib/flatpak 2>/dev/null | cut -f1)"
echo "User: $(du -sh ~/.local/share/flatpak 2>/dev/null | cut -f1)"
echo ""
echo "Applications:"
flatpak list --app --columns=name,size
echo ""
echo "Runtimes:"
flatpak list --runtime --columns=name,size
Improve Startup Performance
Tips:
- Use Wayland instead of XWayland when possible
- Grant necessary permissions upfront (avoid portal overhead)
- Use native runtime (GNOME apps on GNOME, KDE on KDE)
- Disable unnecessary sandboxing for trusted apps
# Run with host IPC for better performance
flatpak override --share=ipc app.id
# Use host X11 socket
flatpak override --socket=x11 app.id
Optimize Updates
Manual Update Schedule:
Create systemd timer or cron job:
# Create update script
cat > ~/bin/flatpak-update.sh << 'EOF'
#!/bin/bash
flatpak update -y
flatpak uninstall --unused -y
EOF
chmod +x ~/bin/flatpak-update.sh
# Add to crontab (weekly updates)
crontab -e
# Add: 0 2 * * 0 ~/bin/flatpak-update.sh
Systemd Timer:
# Create timer file
sudo tee /etc/systemd/user/flatpak-update.timer << EOF
[Unit]
Description=Update Flatpak applications
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
EOF
# Create service file
sudo tee /etc/systemd/user/flatpak-update.service << EOF
[Unit]
Description=Update Flatpak applications
[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak update -y
EOF
# Enable timer
systemctl --user enable --now flatpak-update.timer
Popular Flatpak Applications
Productivity
flatpak install flathub org.libreoffice.LibreOffice # Office Suite
flatpak install flathub org.gnome.Evolution # Email Client
flatpak install flathub com.discordapp.Discord # Discord
flatpak install flathub com.slack.Slack # Slack
flatpak install flathub us.zoom.Zoom # Zoom
flatpak install flathub org.joplinapp.joplin # Notes
flatpak install flathub md.obsidian.Obsidian # Obsidian
flatpak install flathub com.bitwarden.desktop # Password Manager
Development
flatpak install flathub com.visualstudio.code # VS Code
flatpak install flathub com.sublimetext.three # Sublime Text
flatpak install flathub org.gnome.Builder # GNOME Builder
flatpak install flathub com.jetbrains.IntelliJ-IDEA-Community # IntelliJ
flatpak install flathub com.getpostman.Postman # Postman
flatpak install flathub io.dbeaver.DBeaverCommunity # Database Tool
flatpak install flathub com.github.Eloston.UngoogledChromium # Browser
Graphics and Design
flatpak install flathub org.gimp.GIMP # Image Editor
flatpak install flathub org.inkscape.Inkscape # Vector Graphics
flatpak install flathub org.blender.Blender # 3D Creation
flatpak install flathub org.krita.Krita # Digital Painting
flatpak install flathub com.rawtherapee.RawTherapee # RAW Editor
flatpak install flathub org.darktable.Darktable # Photography
flatpak install flathub org.kde.kdenlive # Video Editor
flatpak install flathub com.obsproject.Studio # OBS Studio
Media
flatpak install flathub org.videolan.VLC # VLC Player
flatpak install flathub com.spotify.Client # Spotify
flatpak install flathub io.mpv.Mpv # MPV Player
flatpak install flathub org.gnome.Lollypop # Music Player
flatpak install flathub org.audacityteam.Audacity # Audio Editor
flatpak install flathub com.calibre_ebook.calibre # Ebook Manager
Internet
flatpak install flathub org.mozilla.Firefox # Firefox
flatpak install flathub com.google.Chrome # Chrome
flatpak install flathub com.brave.Browser # Brave
flatpak install flathub org.telegram.desktop # Telegram
flatpak install flathub org.qbittorrent.qBittorrent # Torrent Client
flatpak install flathub org.filezillaproject.Filezilla # FTP Client
Utilities
flatpak install flathub com.github.tchx84.Flatseal # Permission Manager
flatpak install flathub io.gitlab.librewolf-community # Privacy Browser
flatpak install flathub org.gnome.Calculator # Calculator
flatpak install flathub org.gnome.clocks # Clocks
flatpak install flathub com.github.phase1geo.minder # Mind Mapping
flatpak install flathub org.gnome.Extensions # GNOME Extensions
Flatpak Best Practices
Security
- Verify App Sources: Only install from trusted remotes (Flathub)
- Review Permissions: Check permissions before installing
- Use Strict Sandboxing: Avoid overly permissive overrides
- Regular Updates: Keep apps and runtimes updated
- Remove Unused Apps: Minimize attack surface
# Audit installed apps
flatpak list --app
flatpak info --show-permissions app.id
# Review overrides
flatpak override --show app.id
Maintenance
Weekly Maintenance Routine:
#!/bin/bash
echo "=== Flatpak Maintenance ==="
echo "Updating applications..."
flatpak update -y
echo "Removing unused runtimes..."
flatpak uninstall --unused -y
echo "Checking for issues..."
flatpak repair --user
echo "Disk usage:"
du -sh ~/.local/share/flatpak
echo "Done!"
Integration with Desktop
Software Center Integration:
# Ubuntu/GNOME
sudo apt install gnome-software-plugin-flatpak
# KDE
sudo apt install plasma-discover-backend-flatpak
File Manager Integration:
Most file managers automatically recognize Flatpak apps for file associations. For enhanced productivity when working with Flatpak apps and managing your desktop environment, explore our Ubuntu keyboard shortcuts cheatsheet to master window management, workspaces, and application switching.
Using Flatpak in Scripts
You can automate Flatpak installations using bash scripts. For more bash scripting techniques and commands, see our Bash cheat sheet with comprehensive examples.
#!/bin/bash
# Example: Install development environment
apps=(
"com.visualstudio.code"
"com.github.Eloston.UngoogledChromium"
"org.gnome.Builder"
"com.getpostman.Postman"
)
for app in "${apps[@]}"; do
echo "Installing $app..."
flatpak install -y flathub "$app"
done
echo "Development environment ready!"
Flatpak Command Reference
Complete Command Cheatsheet
# SEARCH & INSTALL
flatpak search keyword # Search apps
flatpak install flathub app.id # Install app
flatpak install --user flathub app.id # User install
# LIST & INFO
flatpak list # List installed
flatpak list --app # Apps only
flatpak list --runtime # Runtimes only
flatpak info app.id # Show details
flatpak info --show-permissions app.id # Show permissions
# RUN
flatpak run app.id # Run app
flatpak run --command=sh app.id # Shell access
# UPDATE
flatpak update # Update all
flatpak update app.id # Update specific
flatpak remote-ls --updates # Check updates
# REMOVE
flatpak uninstall app.id # Uninstall app
flatpak uninstall --unused # Remove unused runtimes
flatpak uninstall --all # Remove all apps
# PERMISSIONS
flatpak override --filesystem=home app.id # Grant home access
flatpak override --device=all app.id # Grant device access
flatpak override --share=network app.id # Grant network
flatpak override --reset app.id # Reset overrides
flatpak override --show app.id # Show overrides
# REMOTES
flatpak remotes # List remotes
flatpak remote-add name url # Add remote
flatpak remote-delete name # Remove remote
flatpak remote-ls name # List remote apps
# TROUBLESHOOTING
flatpak repair # Repair installation
flatpak repair --user # Repair user
flatpak repair --system # Repair system
# MASK/PIN
flatpak mask app.id # Prevent updates
flatpak mask --remove app.id # Allow updates
Choosing the Right Package Manager
When to Use Flatpak ✅
Best for:
- Desktop applications (GNOME, KDE apps)
- Cross-distribution compatibility needed
- Granular permission control important
- No background daemon desired
- Shared runtimes preferred (space efficient)
- Manual update control wanted
- User-level installation without sudo
- Open ecosystem preferred
When to Use Other Package Managers
- APT: See our APT Package Manager Guide for system packages, libraries, and traditional Ubuntu package management
- Snap: See our Snap Package Manager Guide for universal packages with automatic updates and IoT/embedded systems
Conclusion
Flatpak represents a modern approach to Linux application distribution, combining universal packaging with security through sandboxing. Its decentralized nature, shared runtimes, and granular permission system make it an excellent choice for desktop applications across all Linux distributions.
Whether you’re a user wanting easy access to the latest applications, a developer seeking cross-distribution deployment, or a system administrator managing multiple systems, Flatpak provides a robust, secure, and user-friendly solution.
Key Advantages:
- True cross-distribution compatibility
- Enhanced security through sandboxing
- Shared runtimes reduce total disk usage
- No background daemon required
- User-level installations possible
- Granular permission control via portals
- Large ecosystem on Flathub
Getting Started:
- Install Flatpak on your system
- Add Flathub repository
- Browse and install apps
- Manage permissions with Flatseal
- Keep apps updated regularly
Explore Flathub today and experience the future of Linux application distribution!
Useful Links
- Flathub Website
- Flatpak Official Site
- Documentation
- Setup Guide
- Build Apps
- Flatseal (Permissions)
- Flatpak GitHub
- Portal Documentation
- App Manifests
- Flatpak Forum