Flatpak: Difference between revisions
Prabuanand (talk | contribs) (reworded a sentence) |
Prabuanand (talk | contribs) m (fixed typo) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
* Enable [[D-Bus]], specifically [[D-Bus#D-Bus session|D-Bus session]] needs to be started separately for each user. | * Enable [[D-Bus]], specifically [[D-Bus#D-Bus session|D-Bus session]] needs to be started separately for each user. | ||
* Enable [[Polkit]]. | * Enable [[Polkit]]. | ||
* | * Ensure that [[#Portals|portal]] packages are installed and running. | ||
== Installation == | == Installation == | ||
Following | Following instructions are based on [https://flathub.org/setup/Alpine official Flatpak guide] with additional customisations. | ||
=== Install Flatpak === | === Install Flatpak === | ||
Line 26: | Line 26: | ||
Next you need to add a repository, for this guide we will use the recommended repository, [https://flathub.org Flathub]. {{cmd|$ flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo}} | Next you need to add a repository, for this guide we will use the recommended repository, [https://flathub.org Flathub]. {{cmd|$ flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo}} | ||
Flatpak is now ready to use immediately, however flatpak desktop entries will not appear until you restart your desktop session | Flatpak is now ready to use immediately, however flatpak desktop entries will not appear until you restart your desktop session by logging out and then logging back in. | ||
Now all you have to do is install apps! | |||
== Flatpak usage == | == Flatpak usage == | ||
Line 47: | Line 49: | ||
=== Install flatpak apps === | === Install flatpak apps === | ||
When installing a flatpak app, a number of questions regarding what permissions the app requires and what runtimes or other software it needs will be asked. | |||
To install a package run '''flatpak --user install <applicationname>''' | To install a package run '''flatpak --user install <applicationname>''' | ||
Line 115: | Line 119: | ||
Which do you want to use (0 to abort)? [0-3]: | Which do you want to use (0 to abort)? [0-3]: | ||
</p> | </p> | ||
== Portals == | |||
Due to their sandboxing, flatpaks require the use of [https://docs.flatpak.org/en/latest/desktop-integration.html#portals portal]. The portal frontend service for Flatpak i.e [https://flatpak.github.io/xdg-desktop-portal/ XDG Desktop Portal] relies on backends provided by the toolkits. So ensure that {{Pkg|xdg-desktop-portal}} package along with the appropriate backend package from the list of {{pkg|xdg-desktop-portal-*}} packages is installed. | |||
Once installed, [[Desktop_environments_and_Window_managers#Desktop_environments|Desktop Environment]] autostart these portals. However, minimal desktops like [[Sway#Flatpaks|Sway]] require configuration to start the portals and may even require multiple backends. | |||
To test, if portals are properly configured, issue the command:{{Cmd|<nowiki>$ dbus-send --session --print-reply --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktoporg.freedesktop.portal.Desktop.GetApplications</nowiki>}} | |||
The output "Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files" for the above command indicates that portals are not configured properly. | |||
== Troubleshooting == | == Troubleshooting == | ||
=== Permission errors === | === Permission errors === | ||
Line 161: | Line 173: | ||
There is a current issue where sometimes flatpak will try to read the system-wide repository even if your install is with --user. This will result in failure to launch a flatpak application with the terminal reading ""error: While opening repository /var/lib/flatpak/repo: opening repo: opendir(/var/lib/flatpak/repo): No such file or directory". An alpine user has posted more information, as well as a workaround, at https://github.com/flatpak/flatpak/issues/5488 | There is a current issue where sometimes flatpak will try to read the system-wide repository even if your install is with --user. This will result in failure to launch a flatpak application with the terminal reading ""error: While opening repository /var/lib/flatpak/repo: opening repo: opendir(/var/lib/flatpak/repo): No such file or directory". An alpine user has posted more information, as well as a workaround, at https://github.com/flatpak/flatpak/issues/5488 | ||
=== GDBus Error === | |||
Below errors occur, if your flatpak application fails to interface with the portal. This can cause issues such as with opening your file directories from a flatpak application. | |||
<pre> | |||
(firefox:12345): Gtk-WARNING **: 12:00:00.000: Unable to load an interface for org.freedesktop.portal.FileChooser: **GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:** The name **org.freedesktop.portal.Desktop** was not provided by any .service files | |||
</pre> | |||
Ensure that [[#Portals|portals]] are installed and started. | |||
== See also == | == See also == | ||
* [https://flatpak.org/setup/Alpine/ Official setup Guide] | * [https://flatpak.org/setup/Alpine/ Official setup Guide] | ||
* [https://docs.flatpak.org/en/latest/available-runtimes.html Flatpak - available runtimes] | * [https://docs.flatpak.org/en/latest/available-runtimes.html Flatpak - available runtimes] | ||
Line 170: | Line 193: | ||
[[Category:Package Manager]] | [[Category:Package Manager]] | ||
Latest revision as of 10:58, 14 October 2025
Flatpak is a technology for building and distributing applications with the goal of having a universal package format for all Linux distributions.
Prerequisites
- Enable community repository.
- Enable D-Bus, specifically D-Bus session needs to be started separately for each user.
- Enable Polkit.
- Ensure that portal packages are installed and running.
Installation
Following instructions are based on official Flatpak guide with additional customisations.
Install Flatpak
Install flatpak package using the command:
# apk add flatpak
Install the flatpak plugin for software managers
Install the Flatpak plugin Software for either the GNOME Software (since v3.13) or KDE Discover (since v3.11), making it possible to install apps without needing the command line.
- To install, for GNOME Software run:
# apk add gnome-software-plugin-flatpak
- For KDE Discover run:
# apk add discover-backend-flatpak
Add the Flathub repository
Next you need to add a repository, for this guide we will use the recommended repository, Flathub.
$ flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Flatpak is now ready to use immediately, however flatpak desktop entries will not appear until you restart your desktop session by logging out and then logging back in.
Now all you have to do is install apps!
Flatpak usage
To get all of the available options to use with the flatpak command run: flatpak --help or flatpak -h
Search for flatpak apps
To search for applications run flatpak --user search <appplicationname>
Example:
~$ flatpak --user search chromium Name Description Application ID Version Branch Remotes Chromium Web Browser The web browser from Chromium project org.chromium.Chromium 96.0.4664.93 stable flathub Chromium B.S.U. Fast paced, arcade-style, top-scrolling space shooter net.sourceforge.chromium-bsu 0.9.16.1 stable flathub ungoogled-chromium A lightweight approach to removing Google web service dependency com.github.Eloston.UngoogledChromium 96.0.4664.45 stable flathub
Install flatpak apps
When installing a flatpak app, a number of questions regarding what permissions the app requires and what runtimes or other software it needs will be asked.
To install a package run flatpak --user install <applicationname>
~$ flatpak --user install com.github.Eloston.UngoogledChromium Looking for matches… com.github.Eloston.UngoogledChromium permissions: ipc network cups pulseaudio wayland x11 devices file access [1] dbus access [2] bus ownership [3] system dbus access [4] [1] /run/.heim_org.h5l.kcm-socket, home, xdg-run/pipewire-0 [2] org.freedesktop.FileManager1, org.freedesktop.Notifications, org.freedesktop.secrets, org.gnome.SessionManager [3] org.mpris.MediaPlayer2.chromium.* [4] org.freedesktop.Avahi, org.freedesktop.UPower ID Branch Op Remote Download 1. com.github.Eloston.UngoogledChromium.Codecs stable i flathub < 1.1 MB 2. com.github.Eloston.UngoogledChromium.Locale stable i flathub < 112.8 kB 3. com.github.Eloston.UngoogledChromium stable i flathub < 119.0 MB Proceed with these changes to the system installation? [Y/n]:
or if you don't know or don't want to type the exact package name:
~$ flatpak --user install chromium Looking for matches… Similar refs found for ‘chromium’ in remote ‘flathub’ (system): 1) app/net.sourceforge.chromium-bsu/x86_64/stable 2) runtime/com.github.Eloston.UngoogledChromium.Codecs/x86_64/stable 3) runtime/org.chromium.Chromium.Codecs/x86_64/stable 4) app/org.chromium.Chromium/x86_64/stable 5) app/com.github.Eloston.UngoogledChromium/x86_64/stable Which do you want to use (0 to abort)? [0-5]:
Remove flatpak apps
To remove a package run: flatpak --user remove <applicationname>
~$ flatpak --user remove com.github.Eloston.UngoogledChromium ID Branch Op 1. com.github.Eloston.UngoogledChromium stable r 2. com.github.Eloston.UngoogledChromium.Codecs stable r 3. com.github.Eloston.UngoogledChromium.Locale stable r Proceed with these changes to the system installation? [Y/n]:
or if you don't know or don't want to type the exact package name:
~$ flatpak --user remove chromium Similar installed refs found for ‘chromium’: 1) app/com.github.Eloston.UngoogledChromium/x86_64/stable (system) 2) runtime/com.github.Eloston.UngoogledChromium.Codecs/x86_64/stable (system) 3) All of the above Which do you want to use (0 to abort)? [0-3]:
Portals
Due to their sandboxing, flatpaks require the use of portal. The portal frontend service for Flatpak i.e XDG Desktop Portal relies on backends provided by the toolkits. So ensure that xdg-desktop-portal package along with the appropriate backend package from the list of xdg-desktop-portal-* packages is installed.
Once installed, Desktop Environment autostart these portals. However, minimal desktops like Sway require configuration to start the portals and may even require multiple backends.
To test, if portals are properly configured, issue the command:
$ dbus-send --session --print-reply --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktoporg.freedesktop.portal.Desktop.GetApplications
The output "Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files" for the above command indicates that portals are not configured properly.
Troubleshooting
Permission errors
If you receive errors about permissions then you may need to add your user to the flatpak group.
Application launch errors
If the application is not starting try running it with
flatpak run the.application.name
on a terminal. If this yields an a dbus error starting with Failed to connect to session bus then you might solve this by adding
export $(dbus-launch)
in /etc/profile.
Fixing audio issues
Make sure that XDG_RUNTIME_DIR is properly configured and re-login if necessary.
When you launch a Flatpak you will need to start pulseaudio as well:
$ pulseaudio --start && flatpak run com.example.Example
Unable to upload files
If you are unable to upload files from the host, this maybe due to Flatpak sandbox and you may have to manually add the authorization.
This can be done with the following commands:
$ flatpak override ApplicationID --filesystem=/home/user/Downloads
Where ApplicationID is given by:
$ flatpak list
For example:
$ flatpak override org.signal.Signal --filesystem=/home/user/Downloads
Error while opening repository
There is a current issue where sometimes flatpak will try to read the system-wide repository even if your install is with --user. This will result in failure to launch a flatpak application with the terminal reading ""error: While opening repository /var/lib/flatpak/repo: opening repo: opendir(/var/lib/flatpak/repo): No such file or directory". An alpine user has posted more information, as well as a workaround, at https://github.com/flatpak/flatpak/issues/5488
GDBus Error
Below errors occur, if your flatpak application fails to interface with the portal. This can cause issues such as with opening your file directories from a flatpak application.
(firefox:12345): Gtk-WARNING **: 12:00:00.000: Unable to load an interface for org.freedesktop.portal.FileChooser: **GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:** The name **org.freedesktop.portal.Desktop** was not provided by any .service files
Ensure that portals are installed and started.