zzxworld

Arch linux pacman 包管理命令用法和选项参考

pacman 命令是 Arch linux 的软件包管理工具,和 Debian 上的 apt,Redhat 上的 yum 类似,用来安装和删除软件,以及系统更新等操作。算是使用 Arch linux 系统时必须要掌握的一个命令。

pacman 命令格式

pacman <操作选项> [选项...] [操作目标]

pacman 命令的提供了丰富的命令选项,其中比较最主要的是操作选项,用来指示命令需要做什么动作。比如查询是 --query,安装是 --sync,删除是 --remove。操作选项后可以跟更多其他类型的辅助选项。操作目标大多数时候是软件名称,或者查询关键字等。

pacman 命令例子

关于 pacman 命令完整的选项介绍请参考文末的命令选项部分。下面先以例子来展示 pacman 命令的日常用法。

首先来看个使用 Arch linux 时每天必须要敲一次的 pacman 命令:

pacman -Syu

它表示把当前系统和安装的软件都更新到最新状态。这也是用 Arch linux 的人常说的「滚」系统。我个人建议每天要执行一次。间隔时间越长,使用这个命令更新系统出现异常的概率会变大。在刚开始使用 Arch 时,我经常十天半个月的更新一次,最常遇到的问题是软件签名过期而导致更新失败,只能先解决更新签名的问题后才能再使用此命令。换成每天执行一次后,就再没出现类似问题。

第二个常用的操作是通过 pacman 命令安装软件:

pacman -S nginx

如果不太确定软件名称,还可以查询一下:

pacman -Ss nginx

查看包的详细信息:

pacman -Qi nginx

列出包的相关文件:

pacman -Ql nginx

删除软件包:

pacman -R nginx

pacman 命令选项

操作选项

缩写 完整名称 说明
-D --database 操作包数据库。
-Q --query 查询包数据库。
-R --remove 从系统中删除包。
-S --sync 直接从远程存储库同步并安装软件包,包括所需的所有依赖项。
-T --deptest 检查依赖关系。
-U --upgrade 升级或向系统添加包,并从同步存储库安装所需的依赖项。
-F --files 查询文件数据库。
-V --version 显示命令版本信息。
-h --help 显示命令帮助信息。

通用选项

缩写 完整名称 说明
-b --dbpath <path> 指定软件库位置。
-r --root <path> 指定软件安装的根目录。
-v --verbose 让命令输出更详细的信息。
--arch <arch> 指定替补结构。
--cachedir <dir> 指定软件包缓存目录。
--color <when> 高亮显示选项。可用值为 always, neverauto
--config <file> 指定配置文件。
--debug 显示调试信息。
--gpgdir <dir> 指定 GnuPG 用于验证签名的目录。
--hookdir <dir> 指定包含钩子文件的替代目录。
--logfile <file> 指定日志目录。
--noconfirm 不显示确认提示消息。
--confirm 显示确认消息。
--disable-download-timeout 禁用默认的低速限制和下载超时。
--sysroot <dir> 指定一个替代的系统根。

事务选项

事务选项主要应用于 -S, -R-U 操作选项。

缩写 完整名称 说明
-d --nodeps 跳过依赖项版本检查。
--assume-installed <package=version> 向事务添加带有版本 version 的虚拟包 package 以满足依赖性。
--dbonly 只添加或删除数据库条目,仍保留所有文件。
--noprogressbar 下载文件时不显示进度条。
--noscriptlet 不执行安装脚本。
-p --print 只显示内容,不执行实际操作。
--print-format <format> 设置显示格式。可用的格式占位符有这些: %n 为软件包名, %v 为软件包版本, %l 为文件位置, %r 为库名, %s 为大小。

更新选项

更新选项主要应用于 -S-U 操作选项。

缩写 完整名称 说明
-w --downloadonly 从服务器检索所有包,但不做安装和升级操作。
--asdeps 隐式安装软件包。
--asexplicit 显式安装软件包。
--ignore <package> 忽略包的升级。
--ignoregroup <group> 忽略组中所有包的升级。
--needed 不重新安装已经是最新的目标软件包。
--overwrite <glob> 绕过文件冲突检查并覆盖冲突文件。

查询选项

查询选项主要应用于 -Q 操作选项。

缩写 完整名称 说明
-c --changelog 查看软件包的变更日志。
-d --deps 限制或过滤依赖包的输出。
-e --explicit 限制或过滤显式安装包的输出。
-g --groups 显示分组下的所有成员软件包。
-i --info 显示软件包的信息。
-k --check 检查系统中是否存在软件包包含的所有文件。
-l --list 列出软件包的所有文件。
-m --foreign 限制或过滤同步数据库中不存在的软件包输出。
-n --native 限制或过滤同步数据库中存在软件包的输出。
-o --owns <file> 搜索包含指定文件的软件包。
-p --file 表示命令行上提供的包是一个文件,而不是数据库中的一个条目。
-q --quiet 对查询操作显示更少的信息。
-s --search <regexp> 使用正则搜索软件包名称和描述。
-t --unrequired 限制或过滤输出,只打印当前安装不需要的软件包。
-u --upgrades 限制或过滤本地系统中过期的包的输出,只使用包版本来查找过时的包。

删除选项

删除选项主要应用于 -R 操作选项。

缩写 完整名称 说明
-c --cascade 删除指定软件包,包括依赖此软件包的其他软件。
-n --nosave 忽略备份指定。
-s --recursive 删除指定软件包以及相关依赖项。
-u --unneeded 删除没有依赖的软件包。

同步选项

同步选项主要应用于 -S 操作选项。

缩写 完整名称 说明
-c --clean 从缓存中删除没有使用的软件包和数据,以释放磁盘空间。
-g --groups 显示软件包的所有成员。
-i --info 显示软件包的信息。
-l --list 列出存储库中的所有包。
-q --quiet 对同步操纵显示更少的信息。
-s --search <regexp> 使用正则搜索软件名称和描述。
-u --sysupgrade 升级所有过期的软件包。
-y --refresh 从服务器下载新的软件库。

数据库选项

数据库选项主要应用于 -D 操作选项。

缩写 完整名称 说明
--asdeps <package> 标记软件包为非显式安装。
--asexplicit <package> 标记软件包为显式安装。
-k --check 检查本地软件包数据库内部是否一致。
-q --quiet 使用静默操作,不输出任何信息。

文件选项

文件选项主要应用于 -F 操作选项。

缩写 完整名称 说明
-y --refresh 从服务器上下载最新的软件包数据库。
-l --list 列出指定包的文件列表。
-x --regex 将查询解释为正则表达式。
-q --quiet 对包含文件的操作显示较少的信息。
--machinereadable 以机器码输出匹配的信息。