Introduction to Flatpak
Flatpak allows you to download apps and run them in a sandbox. It
downloads all of the dependencies of a given package in a sandbox
and allows you to run the package as if it was not in a sandbox.
Some packages only exist as a Flatpak, and some packages have a lot
of dependencies that it might be worth it to install the Flatpak
version instead.
Flatpak Dependencies
Required
AppStream, D-Bus,
Fuse3,
GLib2,
gpgme,
JSON-GLib, elogind,
OSTree-2025.4 (with cURL and gpgme), p11-kit,
and
pyparsing
Recommended
appsteam-glib, Avahi,
Bubblewrap, cURL,
DConf,
docbook-4.5-dtd, docbook-xml-4.5,
docbook-xsl-nons,
GTK-Doc,
libarchive,
libseccomp,
libsoup3, libXau,
libxml2,
libxslt,
xdg-dbus-proxy,
xdg-desktop-portal (with
libportal), and xmlto
Optional
Git,
malcontent
(for parental features), socat-1.8.0.3
(for tests), and Valgrind
Installation of Flatpak
Install Flatpak by running the following commands:
mkdir build &&
cd build &&
meson setup --prefix=/usr \
--buildtype=release \
-D systemd=disabled \
-D system_bubblewrap=bwrap \
-D system_dbus_proxy=xdg-dbus-proxy \
-D tests=false \
.. &&
ninja
Now, as the root
user:
ninja install
Command Explanations
--buildtype=release
:
Specify a buildtype suitable for stable releases of the package, as
the default may produce unoptimized binaries.
-D systemd=disabled
: This
parameter disables Systemd support.
-D system_bubblewrap=bwrap
:
Ensures the build system doesn't download Bubblewrap.
-D
system_dbus_proxy=xdg-dbus-proxy
: Ensures the build
system doesn't download xdg-dbus-proxy.
-D tests=false
: This
parameter disables tests. Remove this parameter if you have socat
installed.
Configuring Flatpak
Now that Flatpak is installed, you should add a repository/remote
to install flatpaks from. Flathub is the most popular choice. You
can do that with:
flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo
You can run it as a regular user or as root
. If you run it as a regular user, polkit
will ask for authentication. In such case, ensure polkit works
first. If all went well, no error should be outputted. Then you
will be able to install flatpaks from Flathub. All installed
applications will be in /var/lib/flatpak/exports/bin
. Add that directory
to your $PATH
if you wish.
Contents
Installed Programs:
flatpak, flatpak-bisect, flatpak-bwrap,
flatpak-coredumpctl, flatpak-dbus-proxy,
flatpak-oci-authenticator, flatpak-portal,
flatpak-session-helper, flatpak-system-helper,
flatpak-validate-icon, and revokefs-fuse
Installed Shell Script
Triggers: desktop-database.trigger, gtk-icon-cache.trigger, and
mime-database.trigger
Installed Libraries:
libflatpak
Installed Directories:
/usr/include/flatpak,
/usr/lib/sysusers.d, and /usr/share/flatpak/triggers
Short Descriptions
desktop-database.trigger
|
is a trigger that updates a flatpak's application cache
|
flatpak
|
can run containerized and sandboxed applications
|
flatpak-bisect
|
can do a git-style bisect of a flatpak application
|
flatpak-bwrap
|
is used by flatpak to utilize
Bubblewrap features
|
flatpak-coredumpctl
|
can debug an application in gdb that crashed inside
flatpak.
|
flatpak-dbus-proxy
|
is used by flatpak to utilize
xdg-dbus-proxy features
|
flatpak-oci-authenticator
|
is used by flatpak to athenticate
with the Oracle OCI SDK
|
flatpak-portal
|
is used by flatpak to access the
xdg-desktop-portal
|
flatpak-session-helper
|
is used by flatpak to help with
session management
|
flatpak-system-helper
|
is used by flatpak to help with
the flatpak system.
|
flatpak-validate-icon
|
is used by flatpak to validate
icons
|
gtk-icon-cache.trigger
|
is a trigger that updates a flatpak's GTK icon cache
|
mime-database.trigger
|
is a trigger that updates a flatpak's MIME database cache
|
revokefs-fuse
|
makes a basepath visible at a given mountpoint
|
libflatpak
|
contains functions used by the Flatpak utilities
|