Flatpak 快速参考:通用 Linux 包管理器

使用 Flatpak 与 Flathub 实现跨发行版应用

Flatpak 是一种用于在 Linux 上构建和分发桌面应用程序的下一代技术,提供通用打包、沙箱化和跨发行版兼容性。

construction-flatpacks 图片由 AI 模型 Flux 1 dev 生成。

什么是 Flatpak?

Flatpak(以前称为 xdg-app)是一种用于软件部署、应用程序虚拟化和 Linux 桌面计算机包管理的软件工具。由 Red Hat 的 Alexander Larsson 开发,Flatpak 提供了一个沙箱环境,用户可以在其中运行与系统其余部分隔离的应用程序。与其他包管理器不同,Flatpak 使用共享运行时,并且没有后台守护进程,使其轻量级,同时通过 Bubblewrap 沙箱化保持安全性。

主要特点:

  • 共享运行时:应用程序共享基础库(GNOME、KDE、Freedesktop),减少总磁盘使用量
  • 手动更新:您控制更新的时间(没有自动后台更新)
  • Bubblewrap 沙箱化:通过 XDG 桌面门户实现强容器化和权限管理
  • 无后台守护进程:轻量级,仅在需要时运行
  • 用户级安装:无需 sudo/root 权限即可安装应用程序
  • 去中心化:开放生态系统,不由单一公司控制
  • 桌面导向:适合 GNOME 和 KDE 桌面应用程序

包管理器比较

Ubuntu 支持多种包管理系统。以下是主要操作的比较:

操作 Flatpak APT Snap
搜索 flatpak search keyword apt search keyword snap find keyword
安装 flatpak install flathub app.id sudo apt install package sudo snap install package
列出已安装 flatpak list --app apt list --installed snap list
显示信息 flatpak info app.id apt show package snap info package
更新所有 flatpak update sudo apt update && sudo apt upgrade sudo snap refresh
更新单个 flatpak update app.id sudo apt install --only-upgrade pkg sudo snap refresh package
卸载 flatpak uninstall app.id sudo apt remove package sudo snap remove package
清理 flatpak uninstall --unused sudo apt autoremove snap remove --revision=N
仓库 使用 flatpak remote-add 添加 /etc/apt/sources.list Snap Store(内置)

快速功能比较

功能 Flatpak APT Snap
自动更新
沙箱化
依赖项 共享运行时 系统库 打包
包大小 中等(20-200MB) 小(5-50MB) 大(50-500MB)
需要 root 权限 否(用户安装)
启动速度 较慢
最适合 桌面应用 系统包 通用应用

关于本指南

本指南聚焦于 Flatpak - 一种为桌面应用设计的去中心化通用包管理器,具有精细的权限控制。Flatpak 非常适合 GNOME 和 KDE 应用程序,适用于您希望手动控制更新的场景,以及需要在没有 root 权限的情况下进行用户级安装的场景。

关于其他包管理器:

每个包管理器都有其优势。使用 Flatpak 管理具有精细权限控制的桌面应用,使用 APT 管理系统包和库,使用 Snap 管理需要自动更新和跨版本兼容性的应用。


Flatpak 包管理 - 详细指南

安装 Flatpak

Ubuntu 和 Debian 基于的系统

如果您正在设置新的 Ubuntu 系统,请查看我们的 Ubuntu 24.04 安装指南,以获得系统设置和必备工具的完整操作指南。

Ubuntu 18.04+:

# 安装 Flatpak
sudo apt install flatpak

# 安装 GNOME Software 插件(用于 Ubuntu Software Center)
sudo apt install gnome-software-plugin-flatpak

# 添加 Flathub 仓库
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 重启系统以完成设置
sudo reboot

Ubuntu 16.04:

# 添加较新 Flatpak 的 PPA
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak

# 添加 Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

其他 Linux 发行版

Fedora(25+ 预装):

# Flatpak 预装,只需添加 Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Arch Linux:

# 安装 Flatpak
sudo pacman -S flatpak

# 添加 Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

openSUSE:

# 安装 Flatpak
sudo zypper install flatpak

# 添加 Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Linux Mint:

# 安装 Flatpak(Mint 18.3+ 预装)
sudo apt install flatpak

# 添加 Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

如果您从头开始设置 Linux Mint,我们的 Linux Mint 重装指南 覆盖了安装过程以及必备工具和配置。

验证安装

# 检查 Flatpak 版本
flatpak --version

# 列出配置的远程仓库
flatpak remotes

# 测试安装
flatpak search gimp

必备 Flatpak 命令

安装应用程序

基本安装:

# 从 Flathub 安装
flatpak install flathub app.id

# 带确认安装
flatpak install -y flathub app.id

# 安装特定版本
flatpak install flathub app.id//version

# 安装特定分支
flatpak install flathub app.id//stable

实际示例:

# 安装 GIMP
flatpak install flathub org.gimp.GIMP

# 安装 VLC
flatpak install flathub org.videolan.VLC

# 安装 LibreOffice
flatpak install flathub org.libreoffice.LibreOffice

# 安装 VS Code
flatpak install flathub com.visualstudio.code

# 安装 Spotify
flatpak install flathub com.spotify.Client

# 安装 Discord
flatpak install flathub com.discordapp.Discord

# 安装 Telegram
flatpak install flathub org.telegram.desktop

# 安装 Blender
flatpak install flathub org.blender.Blender

# 安装 Kdenlive(视频编辑器)
flatpak install flathub org.kde.kdenlive

# 安装 Inkscape
flatpak install flathub org.inkscape.Inkscape

用户 vs 系统安装:

# 用户安装(默认,无需 sudo)
flatpak install --user flathub app.id

# 系统范围安装(需要 sudo)
flatpak install --system flathub app.id

搜索应用程序

# 搜索 Flathub
flatpak search keyword

# 带列输出搜索
flatpak search --columns=name,application,version,branch keyword

# 在特定远程仓库中搜索
flatpak search --remote=flathub keyword

# 示例
flatpak search editor
flatpak search video
flatpak search game
flatpak search office

在线浏览 Flathub:

列出已安装的应用程序

# 列出所有已安装的应用
flatpak list

# 仅列出应用程序(不包括运行时)
flatpak list --app

# 仅列出运行时
flatpak list --runtime

# 显示详细信息
flatpak list --app --columns=name,application,version,size,installation

# 仅列出用户安装
flatpak list --user

# 仅列出系统安装
flatpak list --system

查看应用程序信息

# 显示应用详情
flatpak info app.id

# 显示权限
flatpak info --show-permissions app.id

# 显示元数据
flatpak info --show-metadata app.id

# 显示提交信息
flatpak info --show-commit app.id

# 显示已安装大小
flatpak info --show-size app.id

# 示例
flatpak info org.gimp.GIMP
flatpak info --show-permissions org.videolan.VLC

运行应用程序

# 运行 Flatpak 应用程序
flatpak run app.id

# 使用特定分支运行
flatpak run app.id//stable

# 使用命令行参数运行
flatpak run app.id --arg1 --arg2

# 使用环境变量运行
flatpak run --env=VAR=value app.id

# 使用特定提交运行
flatpak run --commit=abc123 app.id

# 示例
flatpak run org.gimp.GIMP
flatpak run org.videolan.VLC /path/to/video.mp4
flatpak run com.visualstudio.code ~/projects/

应用集成:

已安装的 Flatpak 应用会自动出现在您的应用程序菜单中。您也可以创建桌面快捷方式。

更新应用程序

更新所有:

# 更新所有应用和运行时
flatpak update

# 不确认更新
flatpak update -y

# 仅更新应用
flatpak update --app

# 仅更新运行时
flatpak update --runtime

# 更新用户安装
flatpak update --user

# 更新系统安装
flatpak update --system

更新特定应用:

# 更新特定应用
flatpak update app.id

# 更新到特定版本
flatpak update app.id//version

# 示例
flatpak update org.gimp.GIMP

检查更新:

# 列出有可用更新的应用
flatpak remote-ls --updates

# 检查特定应用
flatpak remote-info --log flathub app.id

删除应用程序

# 卸载应用
flatpak uninstall app.id

# 不确认卸载
flatpak uninstall -y app.id

# 卸载并删除数据
flatpak uninstall --delete-data app.id

# 从用户卸载
flatpak uninstall --user app.id

# 删除未使用的运行时和依赖项
flatpak uninstall --unused

# 删除所有 Flatpak 应用
flatpak uninstall --all

# 示例工作流程
flatpak uninstall org.gimp.GIMP
flatpak uninstall --unused

了解 Flatpak 架构

运行时

运行时是包含常用库的共享基础环境:

主要运行时:

  • org.freedesktop.Platform:带有核心库的基础运行时
  • org.gnome.Platform:GNOME 桌面库
  • org.kde.Platform:KDE/Qt 库
  • org.freedesktop.Sdk:开发工具和库

运行时管理:

# 列出已安装的运行时
flatpak list --runtime

# 安装特定运行时
flatpak install flathub org.gnome.Platform//45

# 检查运行时大小
flatpak info --show-size org.gnome.Platform

# 删除未使用的运行时
flatpak uninstall --unused

应用程序 ID

Flatpak 使用反向 DNS 表示法为应用程序 ID:

格式: tld.domain.AppName

示例:

  • org.gimp.GIMP
  • org.mozilla.Firefox
  • com.visualstudio.code
  • io.github.username.AppName

分支和版本

# 列出可用分支
flatpak remote-info --log flathub app.id

# 安装特定分支
flatpak install flathub app.id//stable
flatpak install flathub app.id//beta

# 切换分支
flatpak update --commit=branch-commit app.id

远程仓库(仓库)

# 列出配置的远程仓库
flatpak remotes

# 添加远程仓库
flatpak remote-add --if-not-exists remote-name https://remote-url

# 删除远程仓库
flatpak remote-delete remote-name

# 修改远程仓库
flatpak remote-modify remote-name --url=new-url

# 列出远程仓库中的应用
flatpak remote-ls remote-name

# 仅列出应用
flatpak remote-ls --app flathub

# 显示远程仓库信息
flatpak remote-info flathub app.id

流行的远程仓库:

  • Flathub:主仓库(https://flathub.org)
  • Flathub Beta:Beta 应用
  • GNOME Nightly:GNOME 开发构建
  • KDE:KDE 应用
  • Fedora:Fedora 注册表

权限和沙箱化

了解门户

Flatpak 使用 XDG 桌面门户进行受控系统访问:

门户类型:

  • 文件选择器:通过主机文件选择器选择文件
  • 打印:访问打印功能
  • 截图:捕获屏幕
  • 屏幕录制:录制屏幕
  • 通知:显示通知
  • 设备:访问设备(摄像头、麦克风)
  • 位置:访问地理位置
  • 网络:网络访问

查看权限

# 显示应用权限
flatpak info --show-permissions app.id

# 显示元数据
flatpak info --show-metadata app.id

# 示例
flatpak info --show-permissions org.videolan.VLC

权限类别:

  • 文件系统访问--filesystem=home--filesystem=host
  • 设备访问--device=dri--device=all
  • 套接字访问--socket=x11--socket=wayland--socket=pulseaudio
  • 网络--share=network
  • IPC--share=ipc

使用 CLI 管理权限

授予权限:

# 授予主目录访问权限
flatpak override --filesystem=home app.id

# 授予特定目录访问权限
flatpak override --filesystem=/path/to/directory app.id

# 授予主机文件系统访问权限(谨慎使用)
flatpak override --filesystem=host app.id

# 授予设备访问权限
flatpak override --device=dri app.id

# 授予网络访问权限
flatpak override --share=network app.id

# 授予 IPC 访问权限
flatpak override --share=ipc app.id

# 示例
flatpak override --filesystem=home org.gimp.GIMP
flatpak override --device=all org.audacityteam.Audacity

撤销权限:

# 撤销文件系统访问权限
flatpak override --nofilesystem=home app.id

# 撤销设备访问权限
flatpak override --nodevice=all app.id

# 重置所有覆盖到默认值
flatpak override --reset app.id

# 查看当前覆盖
flatpak override --show app.id

# 示例
flatpak override --nofilesystem=host org.videolan.VLC

系统范围 vs 用户覆盖:

# 用户级覆盖(默认)
flatpak override --user --filesystem=home app.id

# 系统范围覆盖
sudo flatpak override --system --filesystem=home app.id

使用 Flatseal(GUI)管理权限

安装 Flatseal:

flatpak install flathub com.github.tchx84.Flatseal

功能:

  • 可视化权限管理
  • 开关权限
  • 查看所有应用权限
  • 重置为默认
  • 用户友好界面

启动:

flatpak run com.github.tchx84.Flatseal

或在您的应用程序菜单中查找 “Flatseal”。

高级 Flatpak 使用

命令行选项

使用自定义选项运行:

# 使用特定文件系统访问运行
flatpak run --filesystem=/mnt/data app.id

# 使用环境变量运行
flatpak run --env=DEBUG=1 app.id

# 使用不同开发会话运行
flatpak run --devel app.id

# 在 Flatpak 内运行特定命令
flatpak run --command=bash app.id

# 使用详细输出运行
flatpak -v run app.id

# 示例
flatpak run --filesystem=/media/usb org.gimp.GIMP
flatpak run --command=sh com.visualstudio.code

Shell 访问

# 在 Flatpak 内打开 shell
flatpak run --command=sh app.id

# 如果可用,运行 bash
flatpak run --command=bash app.id

# 访问完整文件系统(用于调试)
flatpak run --filesystem=host --command=bash app.id

# 示例:调试 GIMP 环境
flatpak run --command=bash org.gimp.GIMP

构建和安装本地 Flatpaks

从 .flatpak 文件安装:

# 安装 flatpak 包
flatpak install package.flatpak

# 从远程 URL 安装
flatpak install https://example.com/app.flatpakref

# 从 flatpakref 文件安装
flatpak install app.flatpakref

从仓库安装:

# 添加自定义仓库
flatpak remote-add --if-not-exists custom-repo https://repo-url

# 从自定义仓库安装
flatpak install custom-repo app.id

导出和备份

导出应用:

# 创建 flatpak 包
flatpak build-bundle repo-dir bundle.flatpak app.id

# 导出 ref
flatpak build-export repo-dir build-dir

# 创建单文件包
flatpak create-usb /path/to/usb app.id

备份已安装的应用:

# 列出已安装的应用
flatpak list --app --columns=application > flatpak-apps.txt

# 在另一台系统上恢复
while read app; do
  flatpak install -y flathub "$app"
done < flatpak-apps.txt

降级应用

# 列出可用提交
flatpak remote-info --log flathub app.id

# 安装特定提交
flatpak update --commit=commit-hash app.id

# 固定到当前版本(防止更新)
flatpak mask app.id

# 解除固定(允许更新)
flatpak mask --remove app.id

解决 Flatpak 问题

常见问题和解决方案

应用程序无法启动

# 使用详细输出运行
flatpak run -v app.id

# 检查权限
flatpak info --show-permissions app.id

# 尝试重置覆盖
flatpak override --reset app.id

# 检查是否安装了运行时
flatpak list --runtime | grep Platform

# 重新安装应用
flatpak uninstall app.id
flatpak install flathub app.id

权限被拒绝错误

# 授予必要的文件系统访问权限
flatpak override --filesystem=home app.id

# 授予设备访问权限
flatpak override --device=all app.id

# 检查当前权限
flatpak override --show app.id

# 使用 Flatseal 进行 GUI 管理
flatpak run com.github.tchx84.Flatseal

应用程序未出现在菜单中

# 更新桌面数据库
update-desktop-database ~/.local/share/applications

# 刷新图标缓存
gtk-update-icon-cache ~/.local/share/icons/hicolor

# 重启桌面环境
# 或注销并重新登录

下载或更新缓慢

# 检查远程状态
flatpak remote-ls flathub

# 清除缓存
rm -rf ~/.local/share/flatpak/repo/tmp

# 尝试使用不同的镜像
flatpak remote-modify flathub --url=https://mirror.example.com

# 检查网络连接
flatpak remote-info flathub org.gimp.GIMP

仓库错误

# 重新添加 Flathub
flatpak remote-delete flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 更新仓库元数据
flatpak update --appstream

# 修复安装
flatpak repair

# 检查 ostree 问题
ostree fsck --repo=/var/lib/flatpak/repo

磁盘空间问题

# 检查 Flatpak 磁盘使用情况
du -sh ~/.local/share/flatpak
du -sh /var/lib/flatpak

# 删除未使用的运行时
flatpak uninstall --unused

# 删除旧版本
flatpak uninstall --delete-data app.id

# 清理缓存
rm -rf ~/.cache/flatpak

调试命令

# 详细运行
flatpak run -v app.id

# 显示调试输出
flatpak run --log-session-bus --log-system-bus app.id

# 检查 Flatpak 安装
flatpak info

# 修复 Flatpak
flatpak repair --user
sudo flatpak repair --system

# 检查 OSTree
ostree --repo=/var/lib/flatpak/repo refs

# 查看 Flatpak 进程
ps aux | grep flatpak

性能和优化

减少磁盘使用

删除未使用的内容:

# 删除未使用的运行时
flatpak uninstall --unused -y

# 删除旧版本
# 注意:Flatpak 默认不保留多个版本

# 清理临时文件
rm -rf ~/.cache/flatpak

磁盘使用脚本:

#!/bin/bash
echo "=== Flatpak 磁盘使用情况 ==="
echo "系统: $(du -sh /var/lib/flatpak 2>/dev/null | cut -f1)"
echo "用户: $(du -sh ~/.local/share/flatpak 2>/dev/null | cut -f1)"
echo ""
echo "应用程序:"
flatpak list --app --columns=name,size
echo ""
echo "运行时:"
flatpak list --runtime --columns=name,size

提高启动性能

提示:

  1. 可能时使用 Wayland 而不是 XWayland
  2. 提前授予必要的权限(避免门户开销)
  3. 使用原生运行时(GNOME 应用在 GNOME 上,KDE 在 KDE 上)
  4. 对受信任的应用禁用不必要的沙箱化
# 使用主机 IPC 以获得更好的性能
flatpak override --share=ipc app.id

# 使用主机 X11 套接字
flatpak override --socket=x11 app.id

优化更新

手动更新计划:

创建 systemd 定时器或 cron 作业:

# 创建更新脚本
cat > ~/bin/flatpak-update.sh << 'EOF'
#!/bin/bash
flatpak update -y
flatpak uninstall --unused -y
EOF

chmod +x ~/bin/flatpak-update.sh

# 添加到 crontab(每周更新)
crontab -e
# 添加: 0 2 * * 0 ~/bin/flatpak-update.sh

systemd 定时器:

# 创建定时器文件
sudo tee /etc/systemd/user/flatpak-update.timer << EOF
[Unit]
Description=更新 Flatpak 应用程序

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target
EOF

# 创建服务文件
sudo tee /etc/systemd/user/flatpak-update.service << EOF
[Unit]
Description=更新 Flatpak 应用程序

[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak update -y
EOF

# 启用定时器
systemctl --user enable --now flatpak-update.timer

流行的 Flatpak 应用程序

生产力

flatpak install flathub org.libreoffice.LibreOffice    # 办公套件
flatpak install flathub org.gnome.Evolution            # 邮件客户端
flatpak install flathub com.discordapp.Discord         # Discord
flatpak install flathub com.slack.Slack                # Slack
flatpak install flathub us.zoom.Zoom                   # Zoom
flatpak install flathub org.joplinapp.joplin           # 笔记
flatpak install flathub md.obsidian.Obsidian           # Obsidian
flatpak install flathub com.bitwarden.desktop          # 密码管理器

开发

flatpak install flathub com.visualstudio.code          # VS Code
flatpak install flathub com.sublimetext.three          # Sublime Text
flatpak install flathub org.gnome.Builder              # GNOME Builder
flatpak install flathub com.jetbrains.IntelliJ-IDEA-Community  # IntelliJ
flatpak install flathub com.getpostman.Postman         # Postman
flatpak install flathub io.dbeaver.DBeaverCommunity    # 数据库工具
flatpak install flathub com.github.Eloston.UngoogledChromium  # 浏览器

图形与设计

flatpak install flathub org.gimp.GIMP                  # 图像编辑器
flatpak install flathub org.inkscape.Inkscape          # 矢量图形
flatpak install flathub org.blender.Blender            # 3D 创作
flatpak install flathub org.krita.Krita                # 数字绘画
flatpak install flathub com.rawtherapee.RawTherapee    # RAW 编辑器
flatpak install flathub org.darktable.Darktable        # 摄影
flatpak install flathub org.kde.kdenlive               # 视频编辑器
flatpak install flathub com.obsproject.Studio          # OBS Studio

媒体

flatpak install flathub org.videolan.VLC               # VLC 播放器
flatpak install flathub com.spotify.Client             # Spotify
flatpak install flathub io.mpv.Mpv                     # MPV 播放器
flatpak install flathub org.gnome.Lollypop             # 音乐播放器
flatpak install flathub org.audacityteam.Audacity      # 音频编辑器
flatpak install flathub com.calibre_ebook.calibre      # 电子书管理器

网络

flatpak install flathub org.mozilla.Firefox            # Firefox
flatpak install flathub com.google.Chrome              # Chrome
flatpak install flathub com.brave.Browser              # Brave
flatpak install flathub org.telegram.desktop           # Telegram
flatpak install flathub org.qbittorrent.qBittorrent    # BT 客户端
flatpak install flathub org.filezillaproject.Filezilla # FTP 客户端

工具

flatpak install flathub com.github.tchx84.Flatseal     # 权限管理器
flatpak install flathub io.gitlab.librewolf-community  # 隐私浏览器
flatpak install flathub org.gnome.Calculator           # 计算器
flatpak install flathub org.gnome.clocks               # 时钟
flatpak install flathub com.github.phase1geo.minder    # 思维导图
flatpak install flathub org.gnome.Extensions           # GNOME 扩展

Flatpak 最佳实践

安全

  1. 验证应用来源:仅从受信任的远程仓库(如 Flathub)安装
  2. 检查权限:安装前检查权限
  3. 使用严格沙箱:避免过于宽松的权限覆盖
  4. 定期更新:保持应用和运行时更新
  5. 移除未使用应用:减少攻击面
# 审计已安装的应用
flatpak list --app
flatpak info --show-permissions app.id

# 查看覆盖设置
flatpak override --show app.id

维护

每周维护流程:

#!/bin/bash
echo "=== Flatpak 维护 ==="

echo "更新应用中..."
flatpak update -y

echo "移除未使用的运行时中..."
flatpak uninstall --unused -y

echo "检查问题中..."
flatpak repair --user

echo "磁盘使用情况:"
du -sh ~/.local/share/flatpak

echo "完成!"

与桌面环境的集成

软件中心集成:

# Ubuntu/GNOME
sudo apt install gnome-software-plugin-flatpak

# KDE
sudo apt install plasma-discover-backend-flatpak

文件管理器集成:

大多数文件管理器会自动识别 Flatpak 应用以进行文件关联。为了在使用 Flatpak 应用和管理桌面环境时提高工作效率,请查看我们的 Ubuntu 键盘快捷键速查表 以掌握窗口管理、工作区和应用切换技巧。

在脚本中使用 Flatpak

你可以使用 bash 脚本自动化 Flatpak 安装。如需更多 bash 脚本技巧和命令,请查看我们的 Bash 速查表,其中包含全面的示例。

#!/bin/bash
# 示例:安装开发环境

apps=(
  "com.visualstudio.code"
  "com.github.Eloston.UngoogledChromium"
  "org.gnome.Builder"
  "com.getpostman.Postman"
)

for app in "${apps[@]}"; do
  echo "安装 $app 中..."
  flatpak install -y flathub "$app"
done

echo "开发环境准备就绪!"

Flatpak 命令参考

完整命令速查表

# 搜索与安装
flatpak search keyword              # 搜索应用
flatpak install flathub app.id      # 安装应用
flatpak install --user flathub app.id  # 用户安装

# 列表与信息
flatpak list                        # 列出已安装应用
flatpak list --app                  # 仅列出应用
flatpak list --runtime              # 仅列出运行时
flatpak info app.id                 # 显示详情
flatpak info --show-permissions app.id  # 显示权限

# 运行
flatpak run app.id                  # 运行应用
flatpak run --command=sh app.id     # 获取 shell 访问

# 更新
flatpak update                      # 更新所有应用
flatpak update app.id               # 更新特定应用
flatpak remote-ls --updates         # 检查更新

# 移除
flatpak uninstall app.id            # 卸载应用
flatpak uninstall --unused          # 移除未使用的运行时
flatpak uninstall --all             # 移除所有应用

# 权限
flatpak override --filesystem=home app.id   # 授予 home 访问权限
flatpak override --device=all app.id        # 授予设备访问权限
flatpak override --share=network app.id     # 授予网络权限
flatpak override --reset app.id             # 重置权限覆盖
flatpak override --show app.id              # 显示权限覆盖

# 远程仓库
flatpak remotes                     # 列出远程仓库
flatpak remote-add name url         # 添加远程仓库
flatpak remote-delete name          # 删除远程仓库
flatpak remote-ls name              # 列出远程仓库中的应用

# 故障排除
flatpak repair                      # 修复安装
flatpak repair --user               # 修复用户配置
flatpak repair --system             # 修复系统配置

# 隐藏/锁定
flatpak mask app.id                 # 防止更新
flatpak mask --remove app.id        # 允许更新

选择合适的包管理器

何时使用 Flatpak ✅

最适合:

  • 桌面应用(GNOME、KDE 应用)
  • 需要跨发行版兼容性
  • 权限控制精细很重要
  • 不希望有后台守护进程
  • 优先使用共享运行时(节省磁盘空间)
  • 想手动控制更新
  • 不需要 sudo 的用户级安装
  • 偏好开放生态系统

何时使用其他包管理器

结论

Flatpak 代表了现代 Linux 应用程序分发的一种方式,通过沙箱技术实现安全的通用打包。其去中心化的特性、共享运行时和精细的权限系统,使其成为所有 Linux 发行版桌面应用的绝佳选择。

无论你是希望轻松访问最新应用的用户,还是寻求跨发行版部署的开发者,或是管理多个系统的系统管理员,Flatpak 都提供了一个强大、安全且用户友好的解决方案。

主要优势:

  • 真正的跨发行版兼容性
  • 通过沙箱增强安全性
  • 共享运行时减少总磁盘使用量
  • 不需要后台守护进程
  • 可以进行用户级安装
  • 通过门户实现精细的权限控制
  • Flathub 上有庞大的生态系统

入门步骤:

  1. 在你的系统上安装 Flatpak
  2. 添加 Flathub 仓库
  3. 浏览并安装应用
  4. 使用 Flatseal 管理权限
  5. 定期更新应用

今天就去探索 Flathub,体验 Linux 应用程序分发的未来吧!

有用链接

本网站相关文章