如何在 Arch Linux 中使用 Pacman 命令
pacman 软件包管理器是 Arch Linux 与其他主要发行版(如 Red Hat 和 Ubuntu)的主要区别之一。它将简单的二进制包格式与易于使用的构建系统相结合。pacman 的目标是轻松管理软件包,无论是来自官方仓库还是用户自己的构建。
如果您曾经使用过 Ubuntu 或基于 Debian 的发行版,您可能已经使用过 apt 命令。如果你刚刚安装了 Arch Linux,那么要做的第一件事就是学习使用 pacman 命令。
现在我将解释 pacman 命令的一些基本用法,这些用法是管理 Arch Linux 系统时应该知道的。
像其他软件包管理器一样,pacman 可以将软件包列表与软件仓库同步,通过解决所有必需的依赖关系,允许用户使用简单的命令下载和安装软件包。
1、使用 pacman 安装软件包
你可以用 pacman 命令安装一个或多个软件包,方式如下:
pacman -S package_name1 package_name2 package_name3
-S
代表同步。这表示 pacman 命令首先会同步。
更多参数:
命令 | 解释 | 备注 |
---|---|---|
pacman -S package_name | 执行 pacman -S firefox 将安装 Firefox(常用) | 可以同时安装多个包,以空格分隔包名 |
pacman -Sy package_name | 与上面命令不同的是,该命令将在同步包数据库后再执行安装。 | |
pacman -Sv package_name | 在显示一些操作信息后执行安装。 | |
pacman -U local_package_name | 安装本地包,其扩展名为 pkg.tar.gz 或 pkg.tar.xz | |
pacman -U url | 安装一个远程包(不在 pacman 配置的源里面) | 例:pacman -U http://www.xxx.com/xxx.pkg.tar.xz |
2、删除已安装的软件包
要删除单个程序包并保留其所有依赖项,请执行以下操作:
pacman -R package_name
要删除任何其他已安装程序包都不需要的程序包及其依赖项,请执行以下操作:
pacman -Rs package_name
更多参数:
命令 | 解释 | 备注 |
---|---|---|
pacman -R package_name | 该命令将只删除包,保留其全部已经安装的依赖关系 | |
pacman -Rs package_name | 在删除包的同时,删除其所有没有被其他已安装软件包使用的依赖关系(常用) | |
pacman -Rsc package_name | 在删除包的同时,删除所有依赖这个软件包的程序 | |
pacman -Rd package_name | 在删除包时不检查依赖 |
3、升级软件包
Pacman 提供了一种简单的方法来更新 Arch Linux。只需一个命令即可更新所有已安装的软件包。
以下命令同步存储库数据库并更新系统的软件包:
pacman -Syu
- S 代表同步
- y 表示刷新(本地缓存)
- u 表示系统更新
基本上,-Syu
表示同步到中央存储库(主包数据库),刷新主包数据库的本地副本,然后执行系统更新。
更多参数:
命令 | 解释 | 备注 |
---|---|---|
pacman -Syu | 更新软件源,并更新所有软件 | |
pacman -Syy | 强行更新你的应用的软件库(源) | |
pacman -Syyu | 强行更新你的应用的软件库,再更新所有软件 | |
pacman -Syuu | 强行更新你的应用的软件库,再强制更新所有软件 |
4、使用 pacman 搜索软件包
Pacman 可以在数据库中搜索软件包,包括软件包名称和描述:
pacman -Ss string1 string2 ...
要搜索已安装的软件包,请执行以下操作:
pacman -Qs string1 string2 ...
要在远程包中搜索包文件名,请执行以下操作:
pacman -F string1 string2 ..
要查看包的依赖关系树,请执行以下操作:
pactree package_naenter code hereme_
更多参数:
命令 | 解释 | 备注 |
---|---|---|
pacman -Ss keyword | 在仓库中搜索含关键字的包(常用) | |
pacman -Qs keyword | 搜索已安装的包(常用) | |
pacman -Qi package_name | 查询本地安装包的详细信息 | |
pacman -Ql package_name | 列出该包的文件 | |
pacman -Fs keyword | 按文件名查找软件库 | |
pacman -Si package_name | 显示远程软件包的详尽的信息 | |
pacman -Qii package_name | 使用两个 -i 将同时显示备份文件和修改状态 | |
pacman -Ql package_name | 获取已安装软件包所包含文件的列表 | |
pacman -Fl package_name | 查询远程库中软件包包含的文件 | |
pacman -Qk package_name | 检查软件包安装的文件是否都存在 | |
pacman -Fo /path/to/file_name | 查询文件属于远程数据库中的哪个软件包 | |
pacman -Q | 显示出所有软件 pacman -Q | wc -l 查询数量 | |
pacman -Qdt | 罗列所有不再作为依赖的软件包(孤立orphans) | |
pacman -Qe | 查询所有自己安装的软件 | |
pacman -Qeq | 查询所有自己安装的软件,只显示包名,不显示版本号等 | |
pacman -Qet | 罗列所有明确安装而且不被其它包依赖的软件包 | |
pacman -Qdtq | 查询所有不再被依赖的包名 | |
pactree package_name | 显示软件包的依赖树 | |
whoneeds package_name | 检查一个安装的软件包被那些包依赖 | |
pactree -r package_name | 检查一个安装的软件包被那些包依赖 |
5、清理包缓存
Pacman 将下载的软件包存储在 /var/cache/pacman/pkg/ 中,并且不会自动删除旧的或已卸载的版本。这有一些优点:
- 它允许降级包,而无需通过其他来源检索以前的版本。
- 已卸载的软件包可以很容易地直接从缓存文件夹中重新安装。
- 但是,有必要定期清理缓存以防止文件夹变大。
默认删除所有已安装和已卸载软件包的缓存版本, 除了最近的 3 个:
paccache -r
若要删除当前未安装的所有缓存包和未使用的同步数据库,请执行:
pacman -Sc
要从缓存中删除所有文件,这是最激进的方法,不会在缓存文件夹中留下任何内容:
pacman -Scc
发表评论