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 so many
dependencies that it might be better to install the Flatpak version
instead.
Flatpak Dependencies
Required
AppStream,
D-Bus,
Fuse3,
GLib,
gpgme,
JSON-GLib,
elogind,
OSTree-2026.1 (with cURL and gpgme),
p11-kit, and
pyparsing
Recommended
appstream-glib,
Avahi,
Bubblewrap,
cURL,
libarchive,
libseccomp,
libsoup3,
libXau,
xdg-dbus-proxy, and
xdg-desktop-portal
(with libportal)
Recommended Runtime
Drivers for your GPU(s) for graphics APIs like OpenGL and Vulkan
(NVIDIA (NVIDIA or
NVIDIA-r580) or
Mesa)
Optional
DConf (wanted if using
a GNOME app via Flatpak),
Git,
GTK-Doc,
libxslt,
malcontent
(for parental features),
socat-1.8.1.3
(for tests),
Valgrind, and
xmlto
Installation of Flatpak
If you will be running the tests, prevent the test generation from copying
locale files that LFS doesn't install. On LFS systems, all of the locales
are put in one archive file.
sed -i '92,97d' tests/make-test-runtime.sh
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 gtkdoc=disabled \
-D tests=false \
.. &&
ninja
If you removed the -D tests=false and want to run
the tests, issue: ninja test.
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 gtkdoc=disabled: This parameter disables
building the GTK-Doc API documentation. This is currently broken with
gtk-doc-1.36.0, and causes the build to fail as a result.
-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 this case, you should ensure
polkit works first. If all went well, no error should be output. Then you
will be able to install flatpaks from Flathub. All installed applications
will be in /var/lib/flatpak/exports/bin. You can 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 usedi by flatpak to help with interacting
with the underlying host 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
|