Single file application

There are different projects to install an application as a single file:

Project Application Store
Flatpak Flathub
Snaps (Snapcraft) Snapcraft Store
AppImage AppImageHub

The first use case is to easy install graphical applications (“desktop GUI apps”), but Snaps is also designed to package services (server daemons).

Comparison written by AppImage (not objective): AppImage: Similar Projects.


  • “Shared Runtime”: don’t duplicate files on disk, share memory between processes, whenever possible
  • Easy and atomic upgrade
  • App Store (centralized or distributed repositories)
  • Sandboxing for security
  • Number of packaged applications
  • Don’t depend on the Linux distribution: installable on Debian, OpenSUSE, Fedora, etc.


  • Flatpak: Red Hat, Endless, Gnome
  • Snapcraft: Canonical (Ubuntu)
  • AppImage: OpenSUSE


Example of applications that you can find packaged:

  • Popular open source applications:
    • Audacity
    • GIMP
    • LibreOffice
    • VLC
  • Popular commercial applications:
    • Spotify
    • Skype
    • Steam
    • Slack

Linux technologies

“Applications as a single file” reuse many features which have been pushed by containers to the Linux kernel and userspace to isolate “services” (daemon servers):

  • CGroups
  • Namespaces for everything: user identifiers, process identifiers, filesystem root, network, etc.
  • Sandboxing
    • Linux SECCOMP
    • bubblewrap: “Unprivileged sandboxing tool”: used by docker, systemd-nspawn and flatpak for example.


Flatpak is made of 3 things:

  • software deployment
  • package management
  • application virtualization


  • Flatpak – a history by Alexander Larsson (June, 2018)
  • Using Flatpak with Python by Logan Jones (May 2018)
  • Portals: ???
  • winepak: Flatpak-ing Microsoft Windows applications with Wine.
    • BattleNet
    • Overwatch
    • StarCraft2
    • WoW
    • Fortnite
    • League of Legends
    • etc.
  • Old names of Flatpak: “Glick” (followed by “Glick2”), then “xdg-app”.
  • Old name of “BubbleWrap” (sandbox used internally by Flatpak): “xdg-app-helper”.

See also:


  • Contributors must sign a CLA.


  • Old AppImage name: “klik”.


Debug Flatpak

System service:

systemctl status flatpak-system-helper.service

User session service:

systemctl --user status flatpak-session-helper.service

Debug system helper:

sudo /usr/libexec/flatpak-system-helper -vv -r --no-idle-exit