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,
Systemd, OSTree-2025.7 (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
OpenGL (libglvnd
or Mesa;
Mesa's GL is not supported) and
drivers for your GPU(s) for graphics APIs like OpenGL and Vulkan
Optional
DConf
(wanted if using a GNOME app via Flatpak), Git,
GTK-Doc,
libxslt, malcontent
(for parental features), socat-1.8.1.1 (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 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 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
|