强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

第 2 章:安装与环境配置

第 2 章:安装与环境配置

本章目标:完成 Flatpak 工具链安装、配置 Flathub 仓库、理解运行时与权限模型。


2.1 各发行版安装 Flatpak

2.1.1 安装命令速查表

发行版安装命令Flatpak 版本 (2026)
Fedorasudo dnf install flatpak1.15.x (默认已装)
Ubuntu 22.04+sudo apt install flatpak1.14.x
Debian 12+sudo apt install flatpak1.14.x
Arch Linuxsudo pacman -S flatpak1.15.x
openSUSE Tumbleweedsudo zypper install flatpak1.15.x
Linux Mint 21+已默认安装1.14.x
Endless OS已默认安装1.12.x+
Alpine Linuxsudo apk add flatpak1.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说明
Flathubhttps://dl.flathub.org/repo/flathub.flatpakrepo主仓库,应用最全
Flathub Betahttps://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo测试版应用
GNOME Nightlyhttps://nightly.gnome.org/gnome-nightly.flatpakrepoGNOME 应用每日构建
KDE Nightlyhttps://cdn.kde.org/flatpak/kdeapps-nightly.flatpakrepoKDE 应用每日构建
# 添加 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.Platformglibc, mesa, 基础 X11/Wayland~700 MB无特定桌面框架的应用
org.gnome.PlatformFreedesktop + GTK + GNOME 库~1.2 GBGTK/GNOME 应用
org.kde.PlatformFreedesktop + Qt + KDE 库~1.3 GBQt/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 的权限模型分为两层:

  1. 静态权限 (Static Permissions):在 Manifest 中声明,安装时授予
  2. 动态权限 (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=x11X11 显示
--socket=waylandWayland 显示
--socket=pulseaudioPulseAudio 音频
--socket=fallback-x11Wayland 优先,回退 X11
--filesystem=home访问整个主目录
--filesystem=host访问整个文件系统极高
--filesystem=/tmp访问 /tmp
--device=driGPU 加速
--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 以获得最佳安全性。


2.9 扩展阅读