Flatpak
Flatpak 是一种用于构建和分发应用程序的技术,目标是为所有 Linux 发行版提供通用的软件包格式,它类似于 Snap,
安装
先决条件
- dbus
- polkit
- xdg-desktop-portal
xdg-desktop-portal
的实现,例如 xdg-desktop-portal-gtk- 启用 community 仓库。
dbus
会话,例如: # exec dbus-launch --exit-with-session your_favourite_wm
安装 Flatpak
以下说明来自官方指南
要安装 Flatpak,请运行
# apk add flatpak
接下来,您需要添加一个仓库,在本指南中,我们将使用推荐的仓库 Flathub。
$ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Flatpak 现在可以立即使用了,但是 Flatpak 桌面条目在您重启桌面会话之前不会出现(即,注销然后重新登录)
使用
要获取与 flatpak 命令一起使用的所有可用选项,请运行:flatpak --help 或 flatpak -h
搜索
要搜索应用程序,请运行 flatpak --user search <appplicationname>
示例
~$ flatpak --user search chromium 名称 描述 应用程序 ID 版本 分支 远程仓库 Chromium Web Browser Chromium 项目的 Web 浏览器 org.chromium.Chromium 96.0.4664.93 stable flathub Chromium B.S.U. 快节奏的街机风格,自上而下滚动的太空射击游戏 net.sourceforge.chromium-bsu 0.9.16.1 stable flathub ungoogled-chromium 一种轻量级的方法,用于删除 Google 网络服务依赖 com.github.Eloston.UngoogledChromium 96.0.4664.45 stable flathub
安装
要安装软件包,请运行 flatpak --user install <applicationname>
~$ flatpak --user install com.github.Eloston.UngoogledChromium 正在查找匹配项… com.github.Eloston.UngoogledChromium 权限: ipc network cups pulseaudio wayland x11 devices 文件访问 [1] dbus 访问 [2] 总线所有权 [3] 系统 dbus 访问 [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 分支 操作 远程仓库 下载 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 继续对系统安装进行这些更改吗? [Y/n]
或者,如果您不知道或不想键入确切的软件包名称
~$ flatpak --user install chromium 正在查找匹配项… 在远程仓库 'flathub' (system) 中找到与 'chromium' 类似的引用: 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 您想使用哪一个(0 取消)? [0-5]
移除
要移除软件包,请运行:flatpak --user remove <applicationname>
~$ flatpak --user remove com.github.Eloston.UngoogledChromium ID 分支 操作 1. com.github.Eloston.UngoogledChromium stable r 2. com.github.Eloston.UngoogledChromium.Codecs stable r 3. com.github.Eloston.UngoogledChromium.Locale stable r 继续对系统安装进行这些更改吗? [Y/n]
或者,如果您不知道或不想键入确切的软件包名称
~$ flatpak --user remove chromium 找到与 'chromium' 类似的已安装引用: 1) app/com.github.Eloston.UngoogledChromium/x86_64/stable (system) 2) runtime/com.github.Eloston.UngoogledChromium.Codecs/x86_64/stable (system) 3) 以上所有 您想使用哪一个(0 取消)? [0-3]
故障排除
![]() 需要更多文档和测试,但目前这里的所有内容都应该是可以安全遵循的。 |
权限错误
如果您收到有关权限的错误,则您可能需要将您的用户添加到 flatpak 组。
应用程序启动错误
如果应用程序未启动,请尝试在终端中使用以下命令运行它
flatpak run the.application.name
如果这产生一个以 Failed to connect to session bus 开头的 dbus 错误,那么您可以通过添加
export $(dbus-launch)
到 /etc/profile 中来解决此问题。
修复音频问题
确保 XDG_RUNTIME_DIR 已正确配置,并在必要时重新登录。
当您启动 Flatpak 时,您还需要启动 pulseaudio
$ pulseaudio --start && flatpak run com.example.Example
无法上传文件
如果您无法从主机上传文件,这可能是由于 Flatpak 沙箱 造成的,您可能必须手动添加授权。
这可以通过以下命令完成
$ flatpak override ApplicationID --filesystem=/home/user/Downloads
其中 ApplicationID 由以下命令给出
$ flatpak list
例如
$ flatpak override org.signal.Signal --filesystem=/home/user/Downloads
打开仓库时出错
当前存在一个问题,有时 flatpak 会尝试读取系统范围的仓库,即使您的安装是使用 --user。这将导致启动 flatpak 应用程序失败,终端读取“error: While opening repository /var/lib/flatpak/repo: opening repo: opendir(/var/lib/flatpak/repo): No such file or directory”。一位 alpine 用户在 https://github.com/flatpak/flatpak/issues/5488 上发布了更多信息以及解决方法