系列文章目录
文章目录
前言
flatpak 命令可以管理软件包。
一、flatpak是什么?
Flatpak是一个用于在各种 Linux 发行版上分发桌面应用程序的框架。 它是由长期从事 Linux 桌面工作的开发人员创建的,并作为独立的开源项目运行。
使用 Flatpak 的应用程序需要权限才能访问蓝牙、声音(使用PulseAudio)、网络和文件等资源。这些权限由 Flatpak 的维护者配置,并且可以由系统上的用户添加或删除。
Flatpak 的另一个关键功能是,它允许应用程序开发人员直接向用户提供更新,而无需经过发行版,并且无需为每个发行版单独打包和测试应用程序。
Flathub 是一个位于 flathub.org 的存储库(或 Flatpak 术语中的远程源),它已成为使用 Flatpak 打包应用程序的事实上的标准。程序包由 Flathub 管理员和程序开发人员本身添加到其中(尽管管理员已表示他们更喜欢开发人员提交的应用程序)。虽然Flathub是使用 Flatpak 打包的应用程序的事实上的来源,但可以托管独立于 Flathub 的 Flatpak 存储库。
Flatpak 在沙箱中运行(它提供了所有常见系统库的单独的、ABI 稳定的版本),这意味着它总是比常见的本机包在系统上使用更多的空间。然而,这不是一个问题,因为 Flatpak 使用OSTree作为其后端,可以删除重复的匹配文件。这意味着 Flatpak 应用程序的首次安装一开始总是会占用更多空间,但随着用户安装更多 Flatpak 软件包,效率会更高。
二、flatpak 配置软件源
flatpak 配置 flathub 软件源:
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # flathub 远程源
$ flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo # flathub-beta 远程源
三、flatpak 安装软件包
3.1 flatpak install --help 中文手册
$ flatpak install --help
用法:
flatpak install [选项…] [位置/远程] [引用…] - 安装应用程序或运行时
帮助选项:
-h, --help 显示帮助选项
应用程序选项:
-u, --user 用于用户级安装
--system 用于系统级安装(默认)
--installation=名称 用于非默认系统级安装
--arch=架构 安装目标的架构
--no-pull 不要提取,仅从本地缓存安装
--no-deploy 不要部署,仅下载到本地缓存
--no-related 不要安装相关的引用
--no-deps 不要验证/安装运行时依赖
--no-auto-pin 不要自动置顶明确的安装
--no-static-deltas 不要使用静态增量
--runtime 使用指定名称查找运行时
--app 用指定名称查找应用
--include-sdk Additionally install the SDK used to build the given refs
--include-debug 另外 为给定的引用及其依赖安装调试信息包
--bundle 假定位置是 .flatpak 单文件捆绑包
--from 假定位置是 .flatpakref 应用描述
--gpg-file=文件 用来自文件(- 用于 stdin)的 GPG 密钥检查捆绑包签名
--subpath=路径 仅安装此子路径
-y, --assumeyes 对所有问题自动回答是
--reinstall 如果已安装会先卸载
--noninteractive 显示最少的输出信息且不会询问问题
--or-update 如果已经安装会更新安装
--sideload-repo=路径 对侧载使用该本地仓库
-v, --verbose 显示调试信息,-vv 显示更多详情
--ostree-verbose 显示 OSTree 调试信息
3.2 通过 install
命令安装软件包实例
$ flatpak install flathub org.videolan.VLC
3.3 flatpak install 安装软件包本地目录
flatpak install 安装软件包后,本地目录如下:
$ sudo find / -name "org.videolan.VLC"
# /run/user/1000/ 目录
/run/user/1000/app/org.videolan.VLC
/run/user/1000/.flatpak/org.videolan.VLC
# /var/lib/flatpak/ 目录
/var/lib/flatpak/repo/refs/remotes/flathub/app/org.videolan.VLC
/var/lib/flatpak/repo/refs/heads/deploy/app/org.videolan.VLC
/var/lib/flatpak/exports/bin/org.videolan.VLC
/var/lib/flatpak/app/org.videolan.VLC
/var/lib/flatpak/app/org.videolan.VLC/x86_64/stable/8340d5f837baddc6bf4cf7bb1b1e1cd54c6168969352981e81eb9ac27dc0a8cc/export/bin/org.videolan.VLC
# /var/local/lib/flatpak/ 目录
/var/local/lib/flatpak/repo/refs/remotes/flathub/app/org.videolan.VLC
/var/local/lib/flatpak/repo/refs/heads/deploy/app/org.videolan.VLC
/var/local/lib/flatpak/exports/bin/org.videolan.VLC
/var/local/lib/flatpak/app/org.videolan.VLC
/var/local/lib/flatpak/app/org.videolan.VLC/x86_64/stable/8340d5f837baddc6bf4cf7bb1b1e1cd54c6168969352981e81eb9ac27dc0a8cc/export/bin/org.videolan.VLC
# /root/.var 目录
/root/.var/app/org.videolan.VLC
# ~/.var/ 目录
~/.var/app/org.videolan.VLC
总结
本文仅仅简单介绍了flatpak的使用,而flatpak提供了大量能使我们管理软件包的子命令。