Flatpak is a software utility for software deployment, package management, and application virtualization for Linux desktop computers. It provides a sandbox environment in which users can run applications in isolation from the rest of the system.
… in a nutshell, it is an isolate software bundle package which you can run with restricted permissions!
User Vs System
We can install flatpak applications for system-wide or for single-user. The last part does not need administrative access or any special permissions.
To use flatpak as a user, we have to add
--user next to every flatpak command.
A flatpak application has a manifest that describes dependancies & permissions.
A repository contains a list of application manifests & the flatpak package (code).
One of the best features of flatpak, is that we can have multile versions of a specific application. This is being done by using a different branch or version (like git). Most common branch is default.
To use/install a flatpak application, we have first to add a remote flatpack repository localy.
The most well-known flatpak repository is called: flathub
flatpak remote-add --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
$ flatpak search --user Signal
Description Application Version Branch Remotes Signal - Private messenger for the desktop org.signal.Signal 1.20.0 stable flathub
Install package as user
The default syntax of install packages is:
repository - application
$ flatpak install --user -y flathub com.dropbox.Client
$ flatpak install --user -y flathub org.signal.Signal
See how many packages to you have installed
$ flatpak list
Application ___________ com.dropbox.Client com.jetbrains.PyCharm-Community com.slack.Slack com.visualstudio.code.oss io.atom.Atom org.signal.Signal
To execute a flatpak application :
flatpak run com.slack.Slack
flatpak run org.signal.Signal