Linux捣鼓记录:安装flatpak软件仓库,更换国内镜像
简介
Flatpak是一种用于Linux平台的应用程序打包、分发和运行技术。它设计的初衷是解决Linux生态系统中常见的依赖性和兼容性问题,使得应用程序能够在不同的Linux发行版上无缝运行,而不需要依赖于特定操作系统版本的库文件。
1、安装flatpak
Debian系列:
sudo apt install flatpak
红帽系列:
sudo dnf install flatpak
Arch系列:
sudo pacman -S flatpak
openSUSE系列:
sudo zypper install flatpak
flatpak支持几乎所有Linux 发行版,请参考官网:
https://flatpak.org/setup/
2、添加flatpak的软件仓库flathub
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
解释:--user指定为当前用户,flathub为仓库名称,这样我们就给当前用户新增了一个叫做flathub的仓库。flatpak支持配置多个仓库,一般配置一个“flathub”即可
3、更换为上海交大镜像
flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub
解释:修改名称为“flathub”的仓库,将url修改为上海交大镜像地址
查看flatpak仓库的详细信息
flatpak remotes --show-details
另一种方式:你可以直接编辑flatpak仓库配置文件:
使用文本编辑器打开~/.local/share/flatpak/repo/config(当前用户配置)
或者/var/lib/flatpak/repo/config (系统全局配置)
修改里面的软件仓库地址即可。
4、flatpak命令基本用法:
根据名字搜索应用程序:
flatpak search 应用名
例如:flatpak search spotify
你可能会看到多条记录,注意应用程序的ID:
安装应用程序的基本语法是:
flatpak install applicationID
想安装 Spotify命令就是:flatpak install com.spotify.Client
当然你可以尝试用应用ID中的一部分,直接用flatpak install spotify
,之后会让你确认软件的准确应用ID
列出已安装应用:
#所有
flatpak list
#仅应用,不含运行时
flatpak list --app
#仅运行时
flatpak list --runtime
更新所有应用:
flatpak update
卸载应用程序:
卸载时保留用户数据
flatpak uninstall com.spotify.Client
卸载的删除用户数据
flatpak uninstall com.spotify.Client --delete-data
清理Flatpak缓存可以释放磁盘空间同时不影响Flatpak应用程序正常运行:
flatpak uninstall --unused
#这将卸载您系统中未使用的Flatpak应用程序。
flatpak uninstall --unused --runtime
#这将卸载您系统中未使用的Flatpak运行时。
下面的命令会卸载你所有!所有!所有! 的Flatpak应用程序和运行时,请在确定必要的时候使用。
flatpak uninstall --all
flatpak uninstall --unused --all
#这两命令都会清掉所有应用和依赖,网上有说这条可以清掉未使用的,但其实还是全清。
完成后,您可以检查磁盘空间是否已释放:df -h
这将显示您系统中所有分区的磁盘空间使用情况。
删除多余的仓库
flatpak remote-delete flathub-1
此命令会删除名为flathub-1的仓库,通过此仓库安装的软件也会一起卸载!
5、简单的安装方式
从flathub应用商店网站,你可以随意浏览下载应用:
https://flathub.org/zh-Hans
点击“安装”旁边的小按钮,复制命令到终端执行:
flatpak install flathub org.gnome.gitlab.somas.Apostrophe
注意这个命令中“flathub”含义是使用你名为“flathub”的仓库,所以我们默认仓库最好命名为“flathub”,这样拷贝过来的命令直接执行即可安装
当然你也可以一次安装多个应用,应用ID要准确:
flatpak install \
camp.nook.nookdesktop \
com.github.phase1geo.minder \
com.github.tchx84.Flatseal \
io.github.giantpinkrobots.flatsweep \
it.mijorus.gearlever \
net.cozic.joplin_desktop \
org.gnome.gitlab.somas.Apostrophe \
org.mozilla.Thunderbird \
dev.zed.Zed \
-y
6、个人不推荐的安装方式
如果你点击“安装”按钮,会下载一个flatpakref的文件,这个文件是一个安装引导文件,包含软件的仓库地址、应用ID等信息。
你可以在终端找到这个flatpakref文件,用命令安装软件:
flatpak install com.github.phase1geo.minder.flatpakref
dalong@imini:~/download$ flatpak install com.github.phase1geo.minder.flatpakref
应用程序 com.github.phase1geo.minder 依赖的运行时来自于:
https://dl.flathub.org/repo/
将其配置为新的远程仓库“flathub-1” [Y/n]: n
它会引导你安装仓库“flathub-1”地址是flathub官方仓库地址。其实我们已经配置了国内镜像,不需要再配置官方仓库了。
如果你回n,那么它还是会安装一个关联软件的仓库:minder-origin
dalong@imini:~/download$ flatpak remotes --show-details
名称 标题 网址 集合标识 子集 筛选器 优先级 选项 … … 主页 图标
flathub Flathub https://mirror.sjtu.edu.cn/flathub - - - 1 system … … https://flathub.org/ https://dl.flathub.org/repo/logo.svg
minder-origin - https://dl.flathub.org/repo/ - - - 0 system,no-enumerate … … - -
所以我不推荐这样安装软件,时间长了你会有一堆软件分布在不同的仓库。
好在flatpak的仓库和软件是绑定的,你从a仓库下载a软件,删除a仓库a软件也会一起卸载,卸载a软件,a软件关联的origin仓库也会消失。
7、图形商店
如果你使用GNOME桌面环境,那么你很可能自带gnome-software,你也可以自行安装。
同时要安装flatpak支持插件:
sudo apt install gnome-software-plugin-flatpak
之后在GNOME软件商店中会直接展示包括flathub仓库的软件,你可以直接搜索安装:
8、推荐几个应用
- 微信
flatpak install flathub com.tencent.WeChat
- 开源笔记软件:Joplin
flatpak install flathub net.cozic.joplin_desktop
- 思维导图软件:Minder 支持导出xmind格式
flatpak install flathub com.github.phase1geo.minder
- Markdown编辑器:Apostrophe
flatpak install flathub org.gnome.gitlab.somas.Apostrophe
- AppImages管理工具:GearLever
flatpak install flathub it.mijorus.gearlever
- Flatpak权限管理工具:Flatseal
flatpak install flathub com.github.tchx84.Flatseal
- Flatpak残留清理器:Flatsweep
flatpak install flathub io.github.giantpinkrobots.flatsweep
9、更多命令
安装和运行
flatpak install dev.zed.Zed
flatpak run dev.zed.Zed
列出已安装的 Flatpak 应用程序
flatpak list
flatpak --user list
flatpak --columns=app,name,size,installation list
flatpak --columns=name,size --user list
找出应用 ID 和命令历史
flatpak info dev.zed.Zed
flatpak history
更新 Flatpak 应用程序
flatpak update
flatpak update --app dev.zed.Zed
删除未被使用的依赖
flatpak uninstall --unused
删除应用程序
flatpak uninstall dev.zed.Zed
删除应用程序,同时清除数据
flatpak uninstall -y --delete-data dev.zed.Zed
删除所有应用并清除数据(小心使用)
flatpak uninstall --all
flatpak uninstall --all --delete-data
10、问题排查:
1)安装软件时提示
请注意
'/var/lib/flatpak/exports/share'
'/home/dalong/.local/share/flatpak/exports/share'
目录不在由 XDG_DATA_DIRS 环境变量设置的搜索路径中,因此通过 Flatpak
安装的应用在会话重启前可能不会出现在您的桌面。
解决方案:
添加 Flatpak 目录到 XDG_DATA_DIRS:
可以将 Flatpak 的共享目录添加到 XDG_DATA_DIRS 环境变量中。这可以通过在你的 shell 配置文件(如 .bashrc 或 .zshrc)中添加以下行来实现:
我直接修改/etc/bash.bashrc,在最后添加一行
注意把我的目录替换成你用户目录下的flatpak实际目录
export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:/home/dalong/.local/share/flatpak/exports/share"
添加这行代码后,你需要重新加载配置文件或重新启动终端。
2)依赖变动和用户权限导致的更新问题
安装了一个叫nook的软件,原来依赖于freedesktop 22.08,后来freedesktop 22.08不再维护了,nook软件新版本不再依赖22.08,我执行flatpak update想更新nook时会尝试卸载22.08,此时报错:
Failed to get revokefs-fuse socket from system-helper: Flatpak system operation GetRevokefsFd not allowed for user
原因:更新需要卸载依赖22.08,我的仓库配置没有指定--user(没指定则为system级别仓库),操作需要系统权限。
解决方案:su切换root用户再更新即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下