Please enable Javascript to view the contents

pacman 和 yay 常用命令

 ·  ☕ 4 分钟

Pacman 是一个功能强大的软件包管理器,作为 Arch Linux 发行版的一部分。简单来说,就是和 apt-get 之于Ubuntu一样,pacman 就是 Arch 的 apt-get。pacman 的常用命令如下:

更新系统

pacman -Syu # 对整个系统进行更新。
pacman -Sy # 下载远程仓库最新软件列表到本地,将本地的包数据库与远程的仓库进行同步。
pacman -Su # 升级所有已安装的软件包。

安装软件包

pacman -S 软件包名 # 安装软件包。也可以同时安装多个包,只需以空格分隔包名即可。
pacman -Sy 软件包名 # 在同步包数据库(数据库即所有软件列表)后再执行安装。
pacman -Sv 软件包名 # 在显示一些操作信息后执行安装。
pacman -U 软件包名.pkg.tar.gz # 安装本地软件包,其扩展名为 pkg.tar.gz。
pacman -U http://url/package_name-version.pkg.tar.gz # 安装一个远程包(不在 pacman 配置的源里面)。

卸载软件包

pacman -R 软件包名 # 该命令只删除软件包,保留其全部已经安装的依赖关系。
pacman -Rv 软件包名 # 删除软件包,并显示详细的信息。
pacman -Rs 软件包名 # 删除软件包,同时删除本机上只有该软件依赖而没有被其他已安装软件包使用的的软件。
pacman -Rsc 软件包名 # 删除软件包,并删除所有依赖这个软件的程序,慎用。
pacman -Ru 软件包名 # 删除软件包,同时删除不再被任何软件所需要的依赖。
pacman -Rd 软件包名 # 在删除软件包时不检查依赖。
pacman -Rn 软件包名 # 缺省地,pacman会备份被删除程序的配置文件,将它们加上 pacsave 扩展名。如果在删除软件包时要同时删除相应的配置文件(这种行为在基于 Debian 的系统中称为清除 purging),可是使用该命令。
pacman -Rsn 软件包名 # 该命令删除一个软件包、它的配置文件以及所有不再需要的依赖。-s参数用来删除当前无用的依赖。

搜索软件包

pacman -Ss 关键字 # 在仓库中搜索含关键字的软件包(本地已安装的会标记)。
pacman -Qs 关键字 # 搜索已安装的软件包。
pacman -Qu # 列出所有可升级的软件包。
pacman -Qt # 列出不被任何软件要求的软件包。

查询软件信息

pacman -Q 软件包名 # 查看软件包是否已安装,已安装则显示软件包名称和版本。
pacman -Qi 软件包名 # 查看某个软件包信息,显示较为详细的信息,包括描述、构架、依赖、大小等等。
pacman -Ql 软件包名 # 列出软件包内所有文件,包括软件安装的每个文件、文件夹的名称和路径。
pacman -Qo /path/to/a/file # 可以通过查询数据库获知目前你的文件系统中某个文件是属于哪个软件包。
pacman -Qdt # 罗列所有不再作为依赖的软件包(孤立 orphans)。

软件包组

pacman -Sg # 列出软件仓库上所有的软件包组。
pacman -Qg # 列出本地已经安装的软件包组和子包。
pacman -Sg 软件包组 # 查看某软件包组所包含的所有软件包。
pacman -Qg 软件包组 # 和 pacman -Sg 软件包组完全一样。

很多人建议通过安装软件组来安装工具链,例如:

pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-x86_64-qt5
pacman -S base-devel

清理缓存

pacman -Sc # 清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。
pacman -Scc # 清理所有的缓存文件。警告:关于 pacman -Scc,仅在你确定不需要做任何软件包降级工作时才这样做。pacman -Scc 会从缓存中删除所有软件包。

要了解更详细的参数开关可以 pacman –help 或者 man pacman。

配置和常用选项

Pacman 的配置文件位于/etc/pacman.conf。关于配置文件的进一步信息可以用 man pacman.conf 查看。
常用选项都在[options]段。阅读 man 手册或者查看缺省的 pacman.conf 可以获得有关信息和用途。

跳过升级软件包

如果由于某种原因,你不希望升级某个软件包(如果有多个包不需要升级,只需以空格分隔包名即可),可以加入内容如下:
IgnorePkg = 软件包名

跳过升级软件包组

和软件包一样,你也可以象这样跳过升级某个软件包组:
IgnoreGroup = gnome

附注

Arch Linux 的版本库里面包括:
core # 核心软件包。
extra # 其他常用软件。
community # 社区软件包,譬如 Mysql 等。
testing # 正在测试阶段,还没有正式加入源的软件包。通常软件版本比较新,但是不是非常稳定。
release # 已经发布的软件包。
unstable # 非正式的软件包,可能包括以前版本的软件或者测试软件。

因为Pacman的软件都是从源里面更新,因此在 /etc/pacman.d 里面配置这些软件源的地址。在 /etc/pacman.d 目录里面分别有上面几种软件类型对应的文件名,可以自己手工配置这些软件源的地址。

Pacman 是一个功能强大的包管理器,作为基于 Arch 的发行版的默认设置提供,但它缺乏从 Arch 用户存储库 (AUR) 下载包的功能。 AUR 是一个社区维护的存储库,以安装脚本的形式提供数千个第三方包,也称为 PKGBUILD。要使用这些 PKGBUILD 安装包,我们需要像 yay 这样的 AUR 助手。 yay 可以执行 pacman 的几乎所有操作,并在此基础上添加了很多额外用法。yay 的用法和 pacman 完全类似,上述所有 pacman xxx 命令,均可替换成 yay xxx 执行。yay 安装命令不需要加 sudo。

yay 的常用命令

yay 软件包名或搜索词 # 从仓库和 AUR 中交互式搜索和安装软件包。
yay # 同步并更新所有来自仓库和 AUR 的软件包。后面不跟任何参数时,yay 会执行操作 yay -Syu,它会先调用 pacman 更新源的数据库、更新所有从源内安装的软件包,并检查你的 AUR 包有没有更新。
yay -Sua # 只同步和更新 AUR 软件包。
yay -S 软件包名 # 从仓库和 AUR 中安装一个新的软件包。
yay -Ss 关键词 # 从仓库和 AUR 中搜索软件包数据库中的关键词。
yay -Ps # 显示已安装软件包和系统健康状况的统计数据。

参考:

分享