pacman 与 AUR:Arch Linux 包管理
Syu、Rns、Qi、Ss 这些参数到底在做什么,以及如何区分官方仓库与 AUR 来源。
Linux 上的软件包通常都由包管理器统一管理,Arch Linux 使用的是 pacman。
更新软件包
sudo pacman -Syu
S:同步y:同步缓存u:更新软件包
长时间未更新、担心系统滚挂时,可以用 sudo pacman -Syyu 强制刷新数据库后再升级。
AUR 助手(如 yay)的更新命令:
yay -Sua
安装软件包
官方仓库:
sudo pacman -S <包名>
AUR(Arch Wiki 推荐的手动流程):
- 下载
PKGBUILD,本质是一份打包用的 shell 脚本。 - 编译:完成后目录里会出现
makepkg*.pkg.tar.zst,这是 Arch 特有的归档格式。 - 安装:
sudo pacman -U *.pkg.tar.zst
卸载软件包
sudo pacman -Rns <包名>
-Rns 会同时删除不再需要的依赖和本地配置文件。如果只执行 sudo pacman -R <包名>,依赖会残留,可以用下面的方式清理:
sudo pacman -Rns $(pacman -Qdtq)
查询软件包
本地查询
pacman -Qi <包名> # 查看已安装包的详细信息
pacman -Qdtq # 列出不再被依赖的孤立包
仓库查询
pacman -Ss <包名>
-s 表示 search。查询结果较多时,推荐配合 fzf 做交互式筛选。
清理缓存
pacman-contrib 提供了缓存管理工具:
pacman -Q pacman-contrib archlinux-contrib
sudo paccache -rk3 # 每个包保留最近 3 个版本
sudo paccache -ruk0 # 删除已卸载软件的缓存
所有软件包缓存都存放在 /var/cache/pacman/pkg。
判断软件来源
包的来源可以从后缀区分:
pacman -Qnq # 只列出官方仓库的包,-q 不输出完整信息,-n 表示 native
pacman -Qmq # 只列出 AUR 或手动安装的包
-n:来自官方仓库(native)-m:来自 AUR 或手动编译安装(foreign)
列出所有明确安装的软件(不含依赖)
pacman -Qenq # 输出包名
pacman -Qenq | wc -l # 统计数量
迁移系统
老系统上导出已安装列表:
pacman -Qenq > packages.txt
新系统按列表安装:
sudo pacman -S --needed - < packages.txt
--needed 会跳过已安装的包,避免重复安装时的交互确认。