Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
150 lines (114 sloc) 4.16 KB

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.

Features:

  • "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.

Supporters:

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

Applications

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

Flatpak is made of 3 things:

  • software deployment
  • package management
  • application virtualization

Links:

  • 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:

Snap

  • Contributors must sign a CLA.

AppImage

  • Old AppImage name: "klik".

Misc

You can’t perform that action at this time.