Flatpak 快速参考:通用 Linux 包管理器
使用 Flatpak 与 Flathub 实现跨发行版应用
Flatpak 是一种用于在 Linux 上构建和分发桌面应用程序的下一代技术,提供通用打包、沙箱化和跨发行版兼容性。
图片由 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 权限的情况下进行用户级安装的场景。
关于其他包管理器:
- 📦 APT 包管理器指南 - Ubuntu 传统的系统包和库管理
- 📦 Snap 包管理器指南 - 带有自动更新和沙箱化的通用包
每个包管理器都有其优势。使用 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:
- 访问 https://flathub.org
- 按类别浏览
- 查看截图和描述
- 查看评分和评论
列出已安装的应用程序
# 列出所有已安装的应用
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.GIMPorg.mozilla.Firefoxcom.visualstudio.codeio.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
提高启动性能
提示:
- 可能时使用 Wayland 而不是 XWayland
- 提前授予必要的权限(避免门户开销)
- 使用原生运行时(GNOME 应用在 GNOME 上,KDE 在 KDE 上)
- 对受信任的应用禁用不必要的沙箱化
# 使用主机 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 最佳实践
安全
- 验证应用来源:仅从受信任的远程仓库(如 Flathub)安装
- 检查权限:安装前检查权限
- 使用严格沙箱:避免过于宽松的权限覆盖
- 定期更新:保持应用和运行时更新
- 移除未使用应用:减少攻击面
# 审计已安装的应用
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 的用户级安装
- 偏好开放生态系统
何时使用其他包管理器
- APT:请参阅我们的 APT 包管理器指南 以了解系统包、库和传统 Ubuntu 包管理
- Snap:请参阅我们的 Snap 包管理器指南 以了解适用于自动更新和物联网/嵌入式系统的通用包
结论
Flatpak 代表了现代 Linux 应用程序分发的一种方式,通过沙箱技术实现安全的通用打包。其去中心化的特性、共享运行时和精细的权限系统,使其成为所有 Linux 发行版桌面应用的绝佳选择。
无论你是希望轻松访问最新应用的用户,还是寻求跨发行版部署的开发者,或是管理多个系统的系统管理员,Flatpak 都提供了一个强大、安全且用户友好的解决方案。
主要优势:
- 真正的跨发行版兼容性
- 通过沙箱增强安全性
- 共享运行时减少总磁盘使用量
- 不需要后台守护进程
- 可以进行用户级安装
- 通过门户实现精细的权限控制
- Flathub 上有庞大的生态系统
入门步骤:
- 在你的系统上安装 Flatpak
- 添加 Flathub 仓库
- 浏览并安装应用
- 使用 Flatseal 管理权限
- 定期更新应用
今天就去探索 Flathub,体验 Linux 应用程序分发的未来吧!