pacman

1- pacman
pacman 是 Arch Linux 及其衍生发行版的默认包管理器,主要功能是简化软件包的管理——无论是来自官方仓库,还是用户自行构建的软件包。
[!note] 说明
文中的「包名」「关键字」等均为占位符,使用时请替换为实际的软件包名称;命令直接在终端中执行。
2- 安装软件包
2.1- 安装单个软件包
pacman -S 包名
例如,安装 Firefox:
pacman -S firefox
2.2- 安装多个软件包
pacman -S 包名1 包名2 包名3
3- 更新系统
3.1- 同步包数据库并更新系统
pacman -Syu
这个命令会首先同步本地包数据库,然后更新所有已安装的软件包。
[!warning] 注意
不建议单独运行pacman -Sy:它只同步数据库而不更新软件包,可能导致「部分升级」(partial upgrade)引发依赖问题。日常请始终使用pacman -Syu。
3.2- 仅同步包数据库
pacman -Sy
3.3- 仅更新已安装的软件包
pacman -Su
4- 卸载软件包
4.1- 卸载单个软件包
pacman -R 包名
这个命令只会删除指定的软件包,不会删除其依赖。
4.2- 卸载软件包及其依赖
pacman -Rs 包名
这个命令会删除指定的软件包,以及不再被其他软件包需要的依赖。
4.3- 跳过依赖检查卸载(谨慎使用)
pacman -Rd 包名
跳过依赖检查直接卸载,可能破坏依赖关系,仅在某些特殊场景下使用。
5- 查询软件包
5.1- 查询所有已安装的软件包
pacman -Q
5.2- 查询特定软件包是否已安装
pacman -Q 包名
已安装则输出包名与版本号;未安装则提示未找到该软件包。
5.3- 搜索仓库中的可用软件包
pacman -Ss 关键字
5.4- 显示软件包信息
查看仓库中可用软件包的信息:
pacman -Si 包名
查看已安装软件包的信息:
pacman -Qi 包名
5.5- 搜索已安装的软件包
pacman -Qs 关键字
6- 清理系统
6.1- 清理未使用的包缓存
pacman -Sc
删除缓存中已不再安装的软件包文件。
6.2- 清理所有包缓存
pacman -Scc
清空整个缓存目录,同时删除不再需要的同步数据库。
7- 本地包管理
7.1- 安装本地包
pacman -U /path/to/package.pkg.tar.zst
7.2- 降级软件包
pacman -U /path/to/older/package.pkg.tar.zst
[!warning] 注意
降级属于「部分降级」,可能引发依赖问题,请先确认目标版本与当前系统兼容。
8- 其他常用命令
8.1- 显示帮助信息
pacman -h
8.2- 显示 pacman 版本
pacman -V
9- 新手常忽视的重要命令
9.1- 仅下载软件包但不安装
pacman -Sw 包名
当你需要提前下载软件包以便离线安装时非常有用。
9.2- 列出系统中的孤立包
pacman -Qdt
孤立包(orphan)指不再被任何已安装软件包依赖的软件包,清理它们可以释放磁盘空间。
9.3- 彻底卸载软件包及其依赖
pacman -Rns 包名
卸载软件包,同时删除不再被其他已安装软件包依赖的依赖项及其配置文件。
9.4- 查询某个文件属于哪个软件包
pacman -Qo /path/to/file
当你发现系统中有一个文件、却不确定它由哪个软件包安装时,可以用这个命令查询。
9.5- 查询哪个软件包提供某个文件
pacman -F 文件名
需要先运行 pacman -Fy 同步文件数据库。当你需要某个特定文件、但不知道哪个软件包提供它时,可以用这个命令查询。
9.6- 只安装缺失的软件包
pacman -S --needed 包名
已经是最新版本的软件包不会被重新安装。
9.7- 将已安装的软件包标记为依赖包
pacman -D --asdeps 包名
当你手动安装了一个包、但希望把它标记为依赖包以便更好地管理依赖关系时,可以使用这个命令(配合 --asexplicit 可反向标记为显式安装)。
10- 图表和示例
10.1- 流程图:pacman -Syu 执行流程
graph TD;
A[开始] --> B[同步包数据库]
B --> C[更新所有已安装的软件包]
C --> D[完成]
10.2- 常用命令比较
| 命令 | 功能描述 | 示例命令 |
|---|---|---|
pacman -S |
安装软件包 | pacman -S firefox |
pacman -R |
卸载软件包 | pacman -R firefox |
pacman -Q |
查询已安装的软件包 | pacman -Q firefox |
pacman -Ss |
搜索仓库中的软件包 | pacman -Ss firefox |
pacman -Syu |
同步数据库并更新系统 | pacman -Syu |
10.3- 分步拆解 pacman -Syu
# 同步包数据库并更新系统
pacman -Syu
# 1. 同步包数据库
pacman -Sy
# 2. 更新所有已安装的软件包
pacman -Su
10.4- 安装软件包后的系统结构
graph LR;
A[系统] --> B[软件包仓库]
B --> C[安装软件包]
C --> D[系统中已安装的软件包]
10.5- 磁盘空间分配示例
pie
title 磁盘空间分配
"系统文件" : 40
"用户文件" : 30
"已安装软件包" : 20
"空闲空间" : 10