flatpak - 构建、安装和运行应用程序和运行时
概要
flatpak [选项...] {命令}
描述
Flatpak 是一种用于管理应用程序及其所使用的运行时环境的工具。 在 Flatpak 模型中, 应用程序可以构建和分发,而与它们所使用的宿主系统无关, 并且它们在运行时与宿主系统隔离(“沙盒化”)。
Flatpak 可以以系统范围或每个用户的模式运行。 系统范围的数据(运行时环境、应用程序
和配置)位于 $prefix/var/lib/flatpak/ 中,每个用户的数据位于
$HOME/.local/share/flatpak/ 中。 在这些位置下方,在 repo/ 子目录中有一个本地仓库,
并且已安装的运行时环境和应用程序位于相应的 runtime/ 和 app/ 子目录中。
系统范围的远程仓库可以通过将 flatpakrepo(5) 文件放入
/usr/share/flatpak/remotes.d/ 和 /etc/flatpak/remotes.d/ 中来静态预配置。 如果在两个目录中都存在具有相同名称的文件,
则 /etc 下的文件优先。
除了位于 $prefix/var/lib/flatpak/ 中的系统范围安装之外,该安装始终被视为默认安装,除非被覆盖,
还可以通过 /etc/flatpak/installations.d/ 中的配置文件定义其他系统范围的安装,
该文件必须至少定义安装的 ID 和绝对路径。 还支持其他可选参数,如 DisplayName、Priority 或
StorageType。
Flatpak 使用 OSTree 来分发和部署数据。 它使用的仓库是 OSTree
仓库,可以使用 ostree 实用程序对其进行操作。 已安装的运行时环境和应用程序是 OSTree 的检出版本。
用于构建 flatpak 的基本命令,如 build-init、build 和 build-finish 包含在
flatpak 实用程序中。 对于更高层次的构建支持,请参阅单独的 flatpak-builder(1) 工具。
Flatpak 支持从侧载仓库安装。 这些是仓库的局部副本(由 flatpak create-usb 生成),
用作离线安装源(在线时也可提高性能)。 通过在安装目录的 sideload-repos 子目录中创建指向侧载源的符号链接来配置这些仓库
(即,通常是 /var/lib/flatpak/sideload-repos 或 ~/.local/share/flatpak/sideload-repos)。
此外,还可以在 /run/flatpak/sideload-repos 中创建符号链接,这对于非持久性源来说是一个更好的位置(因为它会在重新启动时清除)。
这些符号链接可以指向 flatpak create-usb 给定的目录,该目录默认写入到子路径 .ostree/repo,也可以直接指向一个 ostree 仓库。
选项
以下是全局选项。各个命令都有自己的选项。
-h, --help
显示帮助选项并退出。
-v, --verbose
在命令处理期间显示调试信息。使用 -vv 以获得更多详细信息。
--ostree-verbose
在命令处理期间显示 OSTree 调试信息。
--version
打印版本信息并退出。
--default-arch
打印默认架构并退出。
--supported-arches
打印受支持的架构,按优先级排序,然后退出。
--gl-drivers
打印活动 GL 驱动程序的列表,然后退出。
--installations
打印系统安装的路径,然后退出。
--print-system-only
当运行 flatpak --print-updated-env 命令时,仅打印系统 flatpak 安装的环境,不包括用户的 home 安装。
--print-updated-env
打印用于使用 flatpak 的环境变量集合,并修改当前的环境变量集合。这 intended 用于 systemd 环境生成器中,不应手动运行。
命令
用于管理已安装的应用程序和运行时的命令:
flatpak-install(1)
从远程或捆绑包安装应用程序或运行时。
flatpak-update(1)
更新已安装的应用程序或运行时。
flatpak-uninstall(1)
卸载已安装的应用程序或运行时。
flatpak-mask(1)
屏蔽更新和自动安装。
flatpak-pin(1)
固定运行时,以防止自动删除。
flatpak-list(1)
列出已安装的应用程序和/或运行时。
flatpak-info(1)
显示已安装的应用程序或运行时的信息。
flatpak-history(1)
显示历史记录。
flatpak-config(1)
管理 flatpak 配置。
flatpak-repair(1)
修复 flatpak 安装。
flatpak-create-usb(1)
将应用程序和/或运行时复制到可移动介质上。
用于查找应用程序和运行时的命令:
flatpak-search(1)
搜索应用程序和运行时。
用于管理正在运行的应用程序的命令:
flatpak-run(1)
运行一个应用程序。
flatpak-kill(1)
停止正在运行的应用程序。
flatpak-override(1)
覆盖应用程序的权限。
flatpak-make-current(1)
指定要运行的默认版本。
flatpak-enter(1)
进入正在运行的应用程序的命名空间。
用于管理文件访问的命令:
flatpak-document-export(1)
授予应用程序访问特定文件的权限。
flatpak-document-unexport(1)
撤销对特定文件的访问权限。
flatpak-document-info(1)
显示有关特定文件的信息。
flatpak-documents(1)
列出已导出的文件。
用于管理动态权限存储的命令:
flatpak-permission-remove(1)
从权限存储中删除项目。
flatpak-permissions(1)
列出权限。
flatpak-permission-show(1)
显示应用程序权限。
flatpak-permission-reset(1)
重置应用程序权限。
flatpak-permission-set(1)
设置应用程序权限。
用于管理远程仓库的命令:
flatpak-remotes(1)
列出所有已配置的远程仓库。
flatpak-remote-add(1)
添加一个新的远程仓库。
flatpak-remote-modify(1)
修改已配置的远程仓库的属性。
flatpak-remote-delete(1)
删除已配置的远程仓库。
flatpak-remote-ls(1)
列出已配置的远程仓库的内容。
flatpak-remote-info(1)
显示已配置的远程仓库中引用的信息。
用于构建应用程序的命令:
flatpak-build-init(1)
初始化构建目录。
flatpak-build(1)
在构建目录中运行构建命令。
flatpak-build-finish(1)
将构建目录完成,以便导出。
flatpak-build-export(1)
将构建目录导出到仓库。
flatpak-build-bundle(1)
从本地仓库中的引用创建 bundle 文件。
flatpak-build-import-bundle(1)
将文件 bundle 导入到本地仓库。
flatpak-build-sign(1)
在应用程序或运行时导出后对其进行签名。
flatpak-build-update-repo(1)
更新仓库中的摘要文件。
flatpak-build-commit-from(1)
基于现有的引用创建一个新的提交。
flatpak-repo(1)
打印关于仓库的信息。
在沙箱中可用的命令:
flatpak-spawn(1)
在另一个沙箱中运行命令。
文件格式
Flatpak 命令使用的文件格式:
flatpakref(5)
指向应用程序或运行时的远程引用。
flatpakrepo(5)
指向远程的引用。
flatpak-remote(5)
远程配置。
flatpak-installation(5)
安装位置的配置。
flatpak-metadata(5)
关于应用程序或运行时的信息。
环境
除了标准的环境变量(如 XDG_DATA_DIRS 和 XDG_DATA_HOME)之外,flatpak 还会检查其自身的一些环境变量。
FLATPAK_BINARY
安装应用程序时,将写入导出的 .desktop 文件和脚本中的 flatpak 可执行文件的路径。默认情况下为 /usr/bin/flatpak,除非在构建时通过 --bindir 覆盖。
FLATPAK_BWRAP
用于创建沙箱的 bwrap(1) 可执行文件的路径。根据 Flatpak 在构建时配置的方式,默认情况下,要么在 PATH 中搜索,要么使用提供的副本,该副本通常安装为 /usr/libexec/flatpak-bwrap。
FLATPAK_CONFIG_DIR
Flatpak 站点配置的位置。如果未设置,则使用 /etc/flatpak(除非在构建时通过 --sysconfdir 覆盖)。
FLATPAK_DATA_DIR
Flatpak 的操作系统级别默认值和集成挂钩的位置。如果未设置,则使用 /usr/share/flatpak,除非在构建时通过 --datadir 覆盖。
FLATPAK_DBUSPROXY
用于过滤沙箱和主机系统之间的 D-Bus 流量的 xdg-dbus-proxy(1) 可执行文件的路径。根据 Flatpak 在构建时配置的方式,默认情况下,要么在 PATH 中搜索,要么使用提供的副本,该副本通常安装为 /usr/libexec/flatpak-dbus-proxy。
FLATPAK_DOWNLOAD_TMPDIR
下载 OCI 图层时将使用的一个目录的路径,并且将来可能用于其他下载。不使用标准的 TMPDIR,因为 Flatpak 应用程序通常太大,无法容纳在 tmpfs 中。
FLATPAK_FANCY_OUTPUT
可设置为 0,以避免在向终端输出时使用花哨的格式。当标准输出不是终端时,或者当设置了 G_MESSAGES_DEBUG 时,此功能也会自动禁用。
FLATPAK_FORCE_TEXT_AUTH
可设置为 1,以强制使用简单的内置 polkit(8) 代理,在需要修改系统范围安装时进行身份验证。默认情况下,如果可用,则使用桌面环境的 polkit 代理,通常会显示图形提示。
FLATPAK_GL_DRIVERS
一个冒号分隔的图形驱动程序扩展列表,用于尝试用于 OpenGL、Vulkan 和类似 API,优先级从高到低。默认情况下,系统会自动选择图形驱动程序。
此列表中的值与具有 active-gl-driver 条件的扩展名称的最后一个点分隔的组件匹配。 典型的值为 default、mesa-git 或 nvidia-550-120(用 nvidia 内核模块的主要版本和次要版本替换版本号)。
FLATPAK_RUN_DIR
flatpak 运行时全局文件的位置。如果未设置,则使用 /run/flatpak。
FLATPAK_SYSTEM_CACHE_DIR
在将内容拉取到系统范围的安装时,将创建临时子仓库的位置。如果未设置,则使用 /var/tmp/ 中的一个目录。 这很有用,因为它更有可能与系统仓库位于同一文件系统上(从而增加例如 reflink 复制的机会),并且我们可以避免将临时数据填充到用户的家目录中。
FLATPAK_SYSTEM_DIR
默认系统范围安装的位置。如果未设置,则使用 /var/lib/flatpak(除非在构建时通过 --localstatedir 或 -Dsystem_install_dir 覆盖)。
FLATPAK_TTY_PROGRESS
可设置为 1,以启用将机器可读的进度报告到终端。目前默认情况下未启用此功能,因为它使用 OSC 9;4 序列,某些终端模拟器将其解释为弹出通知。
FLATPAK_USER_DIR
每个用户的安装位置。如果未设置,则使用 $XDG_DATA_HOME/flatpak。
参见
ostree(1), ostree.repo(5), flatpak-remote(5), flatpak-installation(5), https://www.flatpak.org