Flatpak

  • each application is build against a runtime. a runtime provides basic dependencies
  • multiple runtimes (and versions of it) can be installed at the same time
  • runtimes are distribution agnostic!

  • each application brings its own dependencies if they are not in the runtime or if they need a different version of it

  • each application is built and run in its own sandbox. Access to user files, etc. must be explicitly granted.

  • portals: a way how applications can interact with the host system, e.g. a file chooser dialog or printing

  • upgrading and downgrading is possible due to versioning and only the difference between versions id downloaded -> efficient! (like git)

  • Identifier: com.company.AppName usually enough. More specific: com.company.AppName/architecture/branch

Flatpak commands

flatpak commands are run system-wide by default. To run per-user: --user flag

  • List remotes: flatpak remotes
  • Add a remote (eg. flathub): flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
  • Remove a remote: flatpak remote-delete flathub

  • search: flatpak search gimp

  • install: flatpak install flathub org.gimp.GIMP (general: flagpak install source app_id
  • uninstall: flatpak uninstall org.gimp.GIMP

Since Flatpak version 1.2, the install can search and install an application: flatpak install gimp works

  • update all installed apps: flatpak update
  • list installed apps: flatpak list

  • remove runtimes and extensions that are not used by any installed applications: flatpak uninstall --unused