Flatpak: Difference between revisions
(+ There are currently 2 main runtimes available: GNOME, KDE.) |
WhyNotHugo (talk | contribs) |
||
(63 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
Flatpak is a technology for building and distributing desktop applications | Flatpak is a technology for building and distributing applications with the goal of having a universal package format for all Linux distributions, it is similar to [https://en.wikipedia.org/wiki/Snap_(software) Snap], | ||
== Setup / Installation == | |||
=== Runtime dependencies === | |||
* {{Pkg|dbus}} | |||
* {{Pkg|polkit}} | |||
* {{Pkg|xdg-desktop-portal}} | |||
* an implementation of <code>xdg-desktop-portal</code>, e.g. {{Pkg|xdg-desktop-portal-gtk}} | |||
{{Note|If you are running a window manager from {{Path|.xinitrc}}, make sure you are running a <code>dbus</code> session explicitly, i.e.: | |||
{{Cmd|# exec dbus-launch --exit-with-session your_favourite_wm}}}} | |||
=== Installing Flatpak Itself === | |||
''From: https://flatpak.org/setup/Alpine/'' | |||
{{Note|To install Flatpak you will need to enable the Community repository, See: [[Repositories#Managing_repositories|Repositories - Managing repositories]]}} | |||
To install Flatpak run: | |||
{{cmd|# apk add {{Pkg|flatpak}}}} | |||
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://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 (i.e. by logging out and then logging back in) | |||
== Usage == | |||
To get all of the available options to use with the '''flatpak''' command run: '''flatpak --help''' or '''flatpak -h''', | |||
=== Search === | |||
To search for applications run '''flatpak --user search <appplicationname>''' | |||
Example: | |||
<p style="background-color:#f9f9f9; border:1px dashed #2f6fab; line-height:1.1em; padding:1em; font-family:monospace; font-size:10pt; white-space:pre; overflow:auto;"><span style="color:green;">~</span>'''$''' 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 | |||
</p> | |||
<br> | |||
=== Install === | |||
To install a package run '''flatpak --user install <applicationname>''' | |||
<p style="background-color:#f9f9f9; border:1px dashed #2f6fab; line-height:1.1em; padding:1em; font-family:monospace; font-size:10pt; white-space:pre; overflow:auto;"><span style="color:green;">~</span>'''$''' 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]: | |||
</p> | |||
or if you don't know or don't want to type the exact package name: | |||
<p style="background-color:#f9f9f9; border:1px dashed #2f6fab; line-height:1.1em; padding:1em; font-family:monospace; font-size:10pt; white-space:pre; overflow:auto;"><span style="color:green;">~</span>'''$''' 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]: | |||
</p> | |||
=== Remove === | |||
To remove a package run: '''flatpak --user remove <applicationname>''' | |||
<p style="background-color:#f9f9f9; border:1px dashed #2f6fab; line-height:1.1em; padding:1em; font-family:monospace; font-size:10pt; white-space:pre; overflow:auto;"><span style="color:green;">~</span>'''$''' 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]: | |||
</p> | |||
or if you don't know or don't want to type the exact package name: | |||
<p style="background-color:#f9f9f9; border:1px dashed #2f6fab; line-height:1.1em; padding:1em; font-family:monospace; font-size:10pt; white-space:pre; overflow:auto;"><span style="color:green;">~</span>'''$''' 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]: | |||
</p> | |||
== Developers == | |||
* [https://docs.flatpak.org/en/latest/available-runtimes.html Flatpak - available runtimes] | |||
These are all hosted on [https://flathub.org/ Flathub.org]. | These are all hosted on [https://flathub.org/ Flathub.org]. | ||
== Troubleshooting == | |||
{{Draft|More documentation and testing is needed, but everything currently here should be safe to follow.}} | |||
=== Permission errors === | |||
If you receive errors about permissions then you may need to add your user to the '''flatpak''' group. | |||
{{Note|You need to log out and log back in or reboot for the group change(s) to take effect}} | |||
=== Application launch errors === | |||
If the application is not starting try running it with {{Cmd|<nowiki>flatpak run the.application.name</nowiki>}} 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 | |||
{{Cmd|<nowiki>export $(dbus-launch)</nowiki>}} | |||
in {{Path|/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: | |||
{{Cmd|$ 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 [https://docs.flatpak.org/en/latest/sandbox-permissions.html Flatpak sandbox] and you may have to manually add the authorization. | |||
This can be done with the following commands: | |||
{{Cmd|<nowiki>$ flatpak override ApplicationID --filesystem=/home/user/Downloads</nowiki>}} | |||
Where ''ApplicationID'' is given by: | |||
{{Cmd|$ flatpak list}} | |||
For example: | |||
{{Cmd|<nowiki>$ flatpak override org.signal.Signal --filesystem=/home/user/Downloads</nowiki>}} | |||
=== 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 | |||
== Links == | |||
* [https://flatpak.org/ Flatpak] | |||
* [https://flathub.org/ Flathub] | |||
* [https://winepak.github.io/ Winepak] | |||
[[Category: | [[Category:Package Manager]] | ||
[[ | [[Category: Desktop]] |
Latest revision as of 19:09, 18 May 2024
Flatpak is a technology for building and distributing applications with the goal of having a universal package format for all Linux distributions, it is similar to Snap,
Setup / Installation
Runtime dependencies
- dbus
- polkit
- xdg-desktop-portal
- an implementation of
xdg-desktop-portal
, e.g. xdg-desktop-portal-gtk
dbus
session explicitly, i.e.:
# exec dbus-launch --exit-with-session your_favourite_wm
Installing Flatpak Itself
From: https://flatpak.org/setup/Alpine/
To install Flatpak run:
# apk add flatpak
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://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 (i.e. by logging out and then logging back in)
Usage
To get all of the available options to use with the flatpak command run: flatpak --help or flatpak -h,
Search
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
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
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]:
Developers
These are all hosted on Flathub.org.
Troubleshooting
This material is work-in-progress ... More documentation and testing is needed, but everything currently here should be safe to follow. |
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