Flatpak 应用打包完整教程 / 第 2 章:安装与环境配置
第 2 章:安装与环境配置
本章目标:完成 Flatpak 工具链安装、配置 Flathub 仓库、理解运行时与权限模型。
2.1 各发行版安装 Flatpak
2.1.1 安装命令速查表
| 发行版 | 安装命令 | Flatpak 版本 (2026) |
|---|---|---|
| Fedora | sudo dnf install flatpak | 1.15.x (默认已装) |
| Ubuntu 22.04+ | sudo apt install flatpak | 1.14.x |
| Debian 12+ | sudo apt install flatpak | 1.14.x |
| Arch Linux | sudo pacman -S flatpak | 1.15.x |
| openSUSE Tumbleweed | sudo zypper install flatpak | 1.15.x |
| Linux Mint 21+ | 已默认安装 | 1.14.x |
| Endless OS | 已默认安装 | 1.12.x+ |
| Alpine Linux | sudo apk add flatpak | 1.14.x |
2.1.2 详细安装步骤
Fedora(推荐,体验最佳)
# Fedora 默认已预装 flatpak,确认版本
flatpak --version
# 输出示例:Flatpak 1.15.12
# 如果未安装
sudo dnf install flatpak
# 安装 GNOME Software 的 Flatpak 插件(可选,GUI 安装支持)
sudo dnf install gnome-software-plugin-flatpak
Ubuntu / Debian
# 安装 flatpak
sudo apt update
sudo apt install flatpak
# 安装 GNOME Software 插件(Ubuntu 可选)
sudo apt install gnome-software-plugin-flatpak
# 安装 Plasma Discover 插件(KDE 可选)
sudo apt install plasma-discover-backend-flatpak
# 验证安装
flatpak --version
Arch Linux
# 安装 flatpak
sudo pacman -S flatpak
# 可选:安装 pamac (图形化包管理器) 的 flatpak 支持
sudo pacman -S pamac-flatpak-plugin
# 验证
flatpak --version
openSUSE
# openSUSE Tumbleweed
sudo zypper install flatpak
# openSUSE Leap 15.5+
sudo zypper install flatpak
# 安装 Discover 插件(可选)
sudo zypper install discover-backend-flatpak
2.2 配置 Flathub 仓库
Flathub 是 Flatpak 最大的应用仓库,托管了数千款应用。安装 Flatpak 后必须手动添加 Flathub。
2.2.1 添加 Flathub
# 添加 Flathub 远程仓库(用户级)
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# 或者以系统级安装(所有用户可用)
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
2.2.2 验证仓库配置
# 查看已配置的远程仓库
flatpak remotes
# 输出示例:
# Name Options
# flathub system
# 查看仓库详细信息
flatpak remote-info flathub
# 列出仓库中可用的运行时
flatpak remote-ls --runtime flathub | head -20
2.2.3 其他常用仓库
| 仓库名称 | URL | 说明 |
|---|---|---|
| Flathub | https://dl.flathub.org/repo/flathub.flatpakrepo | 主仓库,应用最全 |
| Flathub Beta | https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo | 测试版应用 |
| GNOME Nightly | https://nightly.gnome.org/gnome-nightly.flatpakrepo | GNOME 应用每日构建 |
| KDE Nightly | https://cdn.kde.org/flatpak/kdeapps-nightly.flatpakrepo | KDE 应用每日构建 |
# 添加 Flathub Beta 仓库
flatpak remote-add --if-not-exists flathub-beta https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo
# 添加 GNOME Nightly 仓库(开发者用)
flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
2.3 运行时 (Runtime) 管理
2.3.1 运行时的概念
运行时是 Flatpak 应用的"基础层",包含应用运行所需的共享库。多个应用可以共享同一个运行时,极大地节省磁盘空间。
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ App A │ │ App B │ │ App C │
│ (自己的代码) │ │ (自己的代码) │ │ (自己的代码) │
├──────────────┤ ├──────────────┤ ├──────────────┤
│ 唯一依赖 │ │ 唯一依赖 │ │ 唯一依赖 │
├──────────────┴──┴──────────────┴──┴──────────────┤
│ 共享运行时 (Runtime) │
│ GNOME Runtime / Freedesktop Runtime │
└──────────────────────────────────────────────────┘
2.3.2 主要运行时对比
| 运行时 | 包含内容 | 大小 | 适用场景 |
|---|---|---|---|
org.freedesktop.Platform | glibc, mesa, 基础 X11/Wayland | ~700 MB | 无特定桌面框架的应用 |
org.gnome.Platform | Freedesktop + GTK + GNOME 库 | ~1.2 GB | GTK/GNOME 应用 |
org.kde.Platform | Freedesktop + Qt + KDE 库 | ~1.3 GB | Qt/KDE 应用 |
2.3.3 安装运行时
# 安装 Freedesktop 运行时及其 SDK
flatpak install flathub org.freedesktop.Platform//24.08 org.freedesktop.Sdk//24.08
# 安装 GNOME 运行时及其 SDK
flatpak install flathub org.gnome.Platform//47 org.gnome.Sdk//47
# 安装 KDE 运行时及其 SDK
flatpak install flathub org.kde.Platform//6.8 org.kde.Sdk//6.8
# 查看已安装的运行时
flatpak list --runtime
# 输出示例:
# Name Application ID Version Branch
# Freedesktop SDK org.freedesktop.Sdk 24.08.7 24.08
# GNOME Platform org.gnome.Platform 47 47
2.3.4 运行时版本管理
# 列出某个运行时的所有已安装版本
flatpak list --runtime --app-runtime=org.freedesktop.Platform
# 删除旧版本运行时(不再有应用使用时)
flatpak uninstall --unused
# 查看某个运行时的详细信息
flatpak info org.freedesktop.Platform
⚠️ 版本选择建议:始终使用当前受支持的运行时版本。截至 2026 年,推荐使用
24.08(Freedesktop) 或47(GNOME)。
2.4 安装位置与用户/系统级区分
2.4.1 安装级别
| 级别 | 路径 | 命令标志 | 适用场景 |
|---|---|---|---|
| 用户级 | ~/.local/share/flatpak/ | --user | 个人应用,无需 root |
| 系统级 | /var/lib/flatpak/ | --system (默认) | 全局共享,需要 root |
# 用户级安装(推荐,无需 sudo)
flatpak install --user flathub org.gnome.Calculator
# 系统级安装(所有用户可用)
flatpak install --system flathub org.gnome.Calculator
# 查看应用安装位置
flatpak info --show-location org.gnome.Calculator
# 切换默认安装级别
# 编辑 /etc/flatpak/installations.d/ 或使用命令
flatpak config --set default-system-flatpak-user-installations "user"
2.4.2 磁盘空间查看
# 查看各应用占用空间
flatpak list --app --columns=application,size
# 查看运行时占用空间
flatpak list --runtime --columns=application,size
# 查看 flatpak 总占用空间
du -sh ~/.local/share/flatpak/ 2>/dev/null
du -sh /var/lib/flatpak/ 2>/dev/null
2.5 权限模型入门
2.5.1 权限概览
Flatpak 的权限模型分为两层:
- 静态权限 (Static Permissions):在 Manifest 中声明,安装时授予
- 动态权限 (Dynamic Permissions):通过 Portal API 在运行时请求用户授权
# 查看某个应用的所有权限
flatpak info --show-permissions org.gnome.Calculator
# 查看应用的元数据
flatpak info --show-metadata org.gnome.Calculator
2.5.2 常见权限列表
| 权限标识 | 作用 | 风险等级 |
|---|---|---|
--share=network | 允许网络访问 | 低 |
--share=ipc | 共享 X11 IPC | 低 |
--socket=x11 | X11 显示 | 中 |
--socket=wayland | Wayland 显示 | 低 |
--socket=pulseaudio | PulseAudio 音频 | 低 |
--socket=fallback-x11 | Wayland 优先,回退 X11 | 低 |
--filesystem=home | 访问整个主目录 | 高 |
--filesystem=host | 访问整个文件系统 | 极高 |
--filesystem=/tmp | 访问 /tmp | 中 |
--device=dri | GPU 加速 | 低 |
--device=all | 所有设备 | 高 |
--talk-name=org.freedesktop.Notifications | 发送通知 | 低 |
--system-talk-name=org.freedesktop.login1 | 系统登录管理 | 高 |
--env=VAR=value | 设置环境变量 | 低 |
2.5.3 权限覆盖
用户可以在安装后覆盖应用的默认权限:
# 禁止某个应用的网络访问
flatpak override --user --unshare=network org.gnome.Calculator
# 授予某个应用对 ~/Documents 的访问
flatpak override --user --filesystem=~/Documents org.gnome.TextEditor
# 查看覆盖的权限
flatpak override --user --show org.gnome.Calculator
# 重置所有覆盖
flatpak override --user --reset org.gnome.Calculator
2.6 GUI 集成
2.6.1 GNOME Software
# 安装 Flatpak 插件
sudo apt install gnome-software-plugin-flatpak # Ubuntu/Debian
sudo dnf install gnome-software-plugin-flatpak # Fedora
# 重启 GNOME Software
killall gnome-software
gnome-software &
2.6.2 KDE Discover
# 安装 Flatpak 后端
sudo apt install plasma-discover-backend-flatpak # Ubuntu/Debian
sudo dnf install discover-backend-flatpak # Fedora
# 重启 Discover
2.7 实验:从零配置到第一个应用
# 步骤 1:验证 flatpak 安装
flatpak --version
# 步骤 2:添加 Flathub
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# 步骤 3:搜索一个应用
flatpak search text-editor
# 或
flatpak search gedit
# 步骤 4:安装 GNOME Text Editor
flatpak install flathub org.gnome.TextEditor
# 步骤 5:查看应用信息
flatpak info org.gnome.TextEditor
# 步骤 6:查看权限
flatpak info --show-permissions org.gnome.TextEditor
# 步骤 7:运行应用
flatpak run org.gnome.TextEditor
# 步骤 8:在沙箱中探索
flatpak run --command=sh org.gnome.TextEditor
ls /app/ # 应用安装目录
ls /usr/ # 运行时目录
cat /app/etc/ # 应用配置
exit
2.8 注意事项
⚠️ 网络问题
在中国大陆地区,dl.flathub.org可能访问缓慢。可使用镜像源:# 使用清华镜像 flatpak remote-modify flathub --url=https://mirrors.tuna.tsinghua.edu.cn/flathub
⚠️ 磁盘空间
首次安装 GNOME 运行时约需 1.2 GB 空间,加上 SDK 约 2.5 GB。建议确保/var或~/.local分区有足够空间。
⚠️ SELinux / AppArmor
在 Fedora (SELinux) 或 Ubuntu (AppArmor) 上,某些沙箱功能可能受到额外限制。确保系统安全策略已正确配置。
⚠️ Wayland vs X11
Flatpak 在 Wayland 下提供更好的沙箱隔离(X11 允许应用间截屏)。建议在 Wayland 会话中使用 Flatpak 以获得最佳安全性。