- 文档
- 知识库
- 教程
- 开发工具
【免费下载链接】reference
为开发人员分享快速参考备忘清单(速查表)
Pacman 是 Arch Linux 的软件包管理器,承担软件包的安装、升级、搜索、删除等全部生命周期管理任务。本文以 jaywcjlove/reference 仓库中的 Pacman 速查清单 为骨架,系统梳理pacman的常用命令语法、八大操作类别与关键安全注意事项,帮助你在 Arch Linux 上快速完成从系统升级、包组安装到依赖清理、按文件反查包名的完整实战操作。
命令语法与帮助信息
命令语法格式
Pacman 的命令遵循统一的语法结构:
$ pacman [ OPTIONS ] COMMAND同步非本地(local)软件仓库并升级系统的软件包,这是 Arch Linux 日常维护最常用的操作:
$ pacman -Syu请注意,使用 Pacman 命令时通常需要管理员权限,在大多数命令前加上
sudo,例如sudo pacman -Syu。
查看帮助与子命令
显示 pacman 命令和选项:
$ pacman -h 或 --help # 或 $ pacman查看指令的完整用法(手册页):
$ man pacman更多细节可参考 Archlinux Wiki 官方文档。
核心子命令一览
Pacman 的每一项操作都对应一个顶层子命令,下表汇总了全部可用的子命令及其功能:
| Option | Function | | :-- | -- | |pacman -D, --database| 操作软件包数据库 | |pacman -Q, --query| 从数据库中查询软件包 | |pacman -R, --remove| 从系统中移除软件包 | |pacman -S, --sync| 同步软件包 | |pacman -T, --deptest| 检查依赖关系 | |pacman -U, --upgrade| 将包升级或添加到系统,并从同步存储库安装所需的依赖项 | |pacman -F, --files| 查询文件数据库 | |pacman -V, --version| 显示版本 | |pacman -h, --help| 显示帮助信息 |
其中日常高频使用的是-S(同步/安装)、-Q(查询本地库)、-R(删除)与-F(文件反查)四类,下文逐一展开。
升级所有已安装的软件包:
$ sudo pacman -Syu安装软件包
安装单个或多个软件包
要安装单个或者一系列软件包(包含软件包的依赖):
$ pacman -S 包名_1 包名_2 ...通过正则表达式安装
要通过正则表达式安装一系列软件包,先用-Ssq查询匹配的包名,再将其作为参数传入-S:
$ pacman -S $(pacman -Ssq 包正则表达式)指定仓库安装
有时软件包有多个版本,放在不同的仓库内(例如extra和testing),可以用仓库名/包名的格式明确指定来源:
$ pacman -S extra/包名花括号扩展批量安装
要安装多个含有相似名称的软件包,可以使用花括号扩展:
$ pacman -S plasma-{desktop,mediacenter,nm}花括号还支持多层嵌套,扩展到需要的层次:
$ pacman -S plasma-{workspace{,-wallpapers},pa}安装包组
一些包属于一个可以同时安装的软件包组,直接以组名为参数即可一次性安装整个组:
$ pacman -S gnome想要查看哪些包属于gnome组,使用-Sg:
$ pacman -Sg gnome查询包数据库
Pacman 使用三类数据库完成查询:-Q查询本地软件包数据库,-S查询同步数据库(远程软件源),-F查询文件数据库。
搜索软件包
在包数据库中查询软件包,匹配范围包含软件包的名字和描述:
$ pacman -Ss string1 string2 ...支持正则表达式,例如匹配所有以vim-开头的包:
$ pacman -Ss '^vim-'查询已安装的软件包:
$ pacman -Qs string1 string2 ...按文件名查找软件库:
$ pacman -F string1 string2 ...查看软件包详细信息
显示软件包的详尽信息(远程同步库):
$ pacman -Si package_name查询本地安装包的详细信息:
$ pacman -Qi package_name同时显示备份文件和修改状态(双i提供更详尽的输出):
$ pacman -Qii package_name查看包内文件清单
获取已安装软件包所包含文件的列表:
$ pacman -Ql package_name查询远程库中软件包包含的文件:
$ pacman -Fl package_name校验与归属查询
查软件包安装的文件是否都存在(完整性校验):
$ pacman -Qk package_name查询数据库获取某个文件属于哪个软件包:
$ pacman -Qo /path/to/file_name查询文件属于远程数据库中的哪个软件包:
$ pacman -F /path/to/file_name孤立包与显式安装包
查询所有不再作为依赖的软件包(孤立 orphans):
$ pacman -Qdt查询所有明确安装而且不被其它包依赖的软件包:
$ pacman -Qet清理软件包缓存
Pacman 将下载的软件包保存在/var/cache/pacman/pkg/,并且不会自动移除旧的和未安装版本的软件包,因此需要手动清理。
要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库:
$ pacman -Sc要删除缓存中的全部文件(更彻底,会清空整个缓存目录):
$ pacman -SccPactree:查看依赖树
注意:
pactree不再是 pacman 包的一部分,它现在在pacman-contrib包中,需先安装该包方可使用。
要显示软件包的依赖树:
$ pactree package_name删除软件包
删除操作由-R系列子命令完成,不同参数对依赖的处理策略差异很大,务必按需选择。
删除单个软件包,保留其全部已经安装的依赖关系:
$ pacman -R package_name删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:
# ⚠️ 删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。 $ pacman -Rs package_name要删除软件包和所有依赖这个软件包的程序:
# ⚠️ 此操作是递归的,请小心检查,可能会一次删除大量的软件包。 $ pacman -Rsc package_name要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包:
# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用 $ pacman -Rdd package_name查询一个包含具体文件的包名
当不确定某个二进制文件或配置来自哪个包时,可以借助文件数据库(-F)反查。首先同步文件数据库:
$ pacman -Fy然后查询包含某个文件的包名,例如查询pacman自身:
$ pacman -F pacman core/pacman 5.0.1-4 usr/bin/pacman usr/share/bash-completion/completions/pacman extra/xscreensaver 5.36-1 usr/lib/xscreensaver/pacman输出会列出所有包含该文件的软件包及其中的文件路径,方便判断文件的真实归属。
其它常用命令
升级系统时顺带安装其他软件包(将升级与安装合并为一次事务):
$ pacman -Syu package_name1 package_name2 ...下载包而不安装它(例如先下载再离线分发):
$ pacman -Sw package_name安装一个本地包(不从源里下载,直接以本地.pkg.tar.zst文件安装):
$ pacman -U /path/to/package/package_name-version.pkg.tar.zst要将本地包保存至缓存(以file://协议指向本地文件):
$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst安装一个远程包(不在 pacman 配置的源里面,直接指定 URL):
$ pacman -U http://www.example.com/repo/example.pkg.tar.zst快速记忆要点
-S一族:安装与同步,-Syu升级全系统,-Ssq正则搜索包名,-Sg查看包组成员;-Q一族:本地库查询,-Qs查已安装、-Qi看详情、-Qo反查文件归属、-Qdt找孤立包;-R一族:删除操作,-R仅删包、-Rs连带删无用依赖、-Rsc递归删除(慎用)、-Rdd强行删除(极度危险);-F一族:文件数据库,-Fy先同步文件库,-F 文件名反查包归属;-Sc/-Scc:清理/var/cache/pacman/pkg/下的软件包缓存;- 权限:除查询类命令外,安装、升级、删除等写操作均需
sudo权限。
掌握了上述命令组合,你便可以在 Arch Linux 上完成从日常升级、批量安装、依赖清理到文件溯源的全流程软件包管理。更多相关速查清单可继续查阅仓库中的 APT 备忘清单、YUM 备忘清单 等软件包管理器文档。
- 文档
- 知识库
- 教程
- 开发工具
【免费下载链接】reference
为开发人员分享快速参考备忘清单(速查表)
相关推荐
Argos Translate 3分钟上手:离线AI翻译完整指南
Argos Translate 3分钟上手:离线AI翻译完整指南 展会现场手机没信号,客服系统要翻译合同条款,合规却禁止数据出内网——Argos Transla
人工智能NLP本地部署Conda 命令速查指南:环境与包管理实战备忘清单
Conda 命令速查指南:环境与包管理实战备忘清单 本指南是 jaywcjlove/reference https://link.gitcode.com/i/7
文档知识库教程开发工具YUM 备忘清单:Quick Reference 中的 RPM 系 Linux 软件包管理命令全解
YUM 备忘清单:Quick Reference 中的 RPM 系 Linux 软件包管理命令全解 本文以开源速查仓库 Quick Reference 中的 Y
文档教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考