Arch Linux 上的 Pacman 命令终极指南
Pacman 是基于 Arch 的发行版上的默认包管理器。以下是您如何使用它像专业人士一样管理系统上的包。
包管理器是 Linux 系统的支柱。正因为有了它们,您才能在桌面上安装并享受最新的软件。 Pacman 是“package”和“manager”这两个词的合成词,是基于 Arch 的系统上的默认包管理器。
尽管 Pacman 与同类产品相比相当容易学习,但来自其他发行版系列的用户发现适应 Pacman 的简短单字符参数令人沮丧。那么让我们来看看 Pacman、它的各种选项,以及如何使用它像专业人士一样管理 Arch Linux 上的包。
吃豆人命令指南
与其他 Linux 命令一样,Pacman 遵循基本命令语法以及一些预定义的标志和参数:
sudo pacman -options pkgname
...其中 -options 是用于调用不同函数的标志,pkgname 是您要操作的包的名称。
使用 Pacman 升级包
当你安装 Linux 时,你应该做的第一件事就是更新已安装的软件包。以下 Pacman 命令会将已安装的软件包与存储库同步,并在有可用更新时升级它们:
sudo pacman -Syu
要仅升级特定包,请使用 -S 标志将包名称指定为参数:
sudo pacman -S pkgname
相反,您也可以阻止 Arch Linux 中的软件包升级。不过,这将需要您编辑位于 /etc 目录中的 pacman.conf 文件。
安装新包
要将新程序添加到您的系统,您需要从官方 Arch 存储库安装软件包。 -S 标志通过提供下载和安装软件包的简单方法来帮助您。该命令的基本语法是:
sudo pacman -S pkgname
例如,要安装根包:
sudo pacman -S root
输出 :
指定以空格分隔的软件包列表,以便使用单个命令安装多个软件包:
sudo pacman -S pkgname1 pkgname2 pkgname3
与 Ubuntu 一样,Arch Linux 也有多个存储库,您可以从中获取软件包。如果多个存储库中存在同名的包,请通过指定存储库名称来选择所需的包。
sudo pacman -S repo/pkgname
要从“社区”存储库安装软件包:
sudo pacman -S community/pkgname
对于那些想要保留某些软件包的备份以供以后使用的人,您可以使用 -Sw 标志下载软件包而不安装它:
sudo pacman -Sw pkgname
您还可以使用包源 URL 直接下载并安装包。为此,请使用 -U 标志并指定存档的链接:
sudo pacman -U https://example.com/pkgname.pkg.tar.zst
使用存档安装本地包
有时,当您在 Arch 存储库中找不到软件包时,您可以从互联网下载其 tarball/archive 并使用 Pacman 手动安装。 -U 标志允许您使用下载的存档在本地安装软件包:
sudo pacman -U /path/to/archive/pkgname.pkg.tar.zst
通常,Pacman 会使用 pacman -S pkgname 命令跟踪安装的软件包,并定期检查它们是否有可用的更新。但是,如果您使用下载的 tarball 安装软件包,则必须手动检查该软件包的更新。
因此,建议您从官方存储库下载软件包。仅当官方存储库中不提供该软件包时,您才应使用其存档在本地下载并安装该软件包。
如果要通过从包缓存安装包来降级包,请使用以下命令格式:
sudo pacman -U file://path/to/archive/pkgname.pkg.tar.zst
搜索要安装的包
Pacman 允许您使用 -Q、-S 和 -F 在本地数据库、同步数据库和文件数据库中搜索包分别是标志。
当您不知道包的确切名称时,可以使用 -Ss 标志在同步数据库中搜索它。
sudo pacman -Ss query
例如:
要搜索系统上已安装的软件包,请使用 -Qs 标志:
sudo pacman -Qs query
如果您想在实际安装之前了解有关软件包的更多信息,请在命令中使用 -Si 标志:
sudo pacman -Si pkgname
列出孤立的软件包,即系统上任何软件包都不需要的已安装依赖项:
sudo pacman -Qdt
您可以将上述命令与 pacman -Rns 命令结合使用,以释放系统上的一些空间,如下所示:
sudo pacman -Rns $(pacman -Qdt)
卸载软件包
当您想要删除使用 Pacman 安装的软件包时,请使用 -R 选项。
sudo pacman -R pkgname
输出 :
上面的命令只会删除指定的包并保持其依赖关系不变。要连同包一起删除依赖项,请将 -s 标志附加到命令中:
sudo pacman -Rs pkgname
如果要删除的包充当另一个包的依赖项,则可以使用附加的 -c 标志删除这两个包:
sudo pacman -Rsc pkgname
通常,Pacman 会保留与包关联的配置文件,并在您删除包时创建这些文件的备份。要覆盖此默认行为并删除包而不备份配置文件,请在删除命令中使用 -n 标志:
sudo pacman -Rns pkgname
通过清理包缓存释放一些空间
当您使用 Pacman 安装软件包时,它不会删除下载的文件。相反,它将它们存储在包缓存中,直到用户将其删除。这可能会导致存储空间不足的问题,因为这些缓存文件会累积并占用大量的系统存储空间。
要解决此问题,定期清理包缓存很重要。
paccache -r
您可以选择仅保留当前安装的软件包的缓存文件,并使用以下命令删除其余的:
pacman -Sc
Pacman、APT 和 DNF:比较
与 APT 或 DNF 等其他包管理器相比,由于命令中使用的复杂且不直观的标志,Pacman 对于新用户来说可能会很复杂。但这也是吃豆人的美妙之处;您无需在终端中输入多行命令即可快速完成工作。
让我们比较一下使用 APT 和 Pacman 更新和升级软件包的命令。如果您运行的是基于 Debian 的发行版,则必须执行两个命令才能实现此目标:
sudo apt update
sudo apt upgrade
您还可以使用 && 运算符连接上述两个命令,但与 Pacman 对应项相比,它仍然存在不足:
sudo pacman -Syu
总体而言,APT 和 DNF 命令是不言自明的,对于 Linux 新手来说很容易理解,而 Pacman 命令则简洁,只需敲击几下键盘即可完成更多工作。
加紧!探索 Arch 用户存储库
您可能知道,Pacman 只能从官方 Arch 存储库获取软件包。但很大一部分软件包驻留在社区维护的 Arch 用户存储库 (AUR) 上。要从 AUR 安装软件包,您需要像 yay 这样的 AUR 帮助程序。
AUR 是由用户创建和维护、为用户服务的存储库。任何人都可以以 PKGBUILD 的形式将其包添加到 AUR,前提是他们首先对 AUR 有足够的了解。