manjaro Linux yay常用命令整理大全

yay是一个AUR Helper,他可以执行pacman的几乎所有操作,并在此基础上添加了很多额外用法。
我没有在网络上查找到关于yay的、除了pacman基础用法和安装AUR包以外的中文教程,英文的也几乎没有看到,这也是我写这篇文章的原因所在。
本文通篇详讲yay的每一个设置/选项(大概就是archwiki那种干涩的行文思路),最后会给出我自己的一些常用命令,但不会做解释。
写作时参考了yay的英文使用手册,如果你的arch安装了yay,那么即可通过man yay命令随时查阅它。
阅读提示: 本文中出现的foo一般是指包名,标注*的表示该选项默认启用。


本文使用markdown写作,首发于「我的博客」,对本文的后续变动将不会继续同步至知乎,建议访问我的博客以阅读最新的修改版本


基本用法

yay的基本用法是yay <operation> [options] [targets]yay fooyayyay <operation> [options] [targets]的用法可以讨论的点比较多,我会在后文中一一道来。

yay

当我们仅执行yay,后面不跟任何参数时,yay会执行操作yay -Syu,他会先调用pacman更新源的数据库、更新所有从源内安装的软件包,并检查你的AUR包有没有更新。

yay foo

通过yay后面直接跟包名的命令会让yay直接在源和AUR内搜索带有foo关键词的包(包名和简介中只要出现foo都会被一网打尽),以下是我执行yay dingtalk的输出

5 aur/com.dingtalk.deepin 5.0.15deepin7-1 (+0 0.00) Deepin Wine dingtalk
4 aur/deepin.com.dingtalk.com 5.1.28.12-2 (+1 0.12) DingTalk Client on Deepin Wine
3 aur/dingtalk 2.1.3-1 (+3 0.00) 钉钉桌面版,基于electron和钉钉网页版开发,支持Windows、Linux和macOS
2 aur/dingtalk-linux 3.5.5-1 (+6 0.12) May be the official Linux experimental version
1 aur/dingtalk-electron 2.1.9-1 (+9 0.15) 钉钉Linux版本
==> Packages to install (eg: 1 2 3, 1-3 or ^4)
==

输入每一项对应的序号即可进入相应的安装过程。

yay <operation> [options] [targets]

在这里,\每次只能有一个,[options]和[targets]可以有多个,且多个[options]可以合起来写在一起。比如yay -P -s -f可以直接写成yay -Psf,顺序也可以颠倒,-Psf-sPf没区别。

-Y (--yay)

-Y行为其实是yay的默认行为,当你没有加其他的行为参数时,yay就会执行-Y参数,可以跟--gendb-c

--gendb

生成AUR数据库。仅当从另一个AUR Helper迁移到yay时,才应使用此选项。(根据我的个人理解,是根据你Arch内安装的源内找不到的包的包名去AUR里寻找对应的PKGBUILD,并且把能找到的PKGBUILD给clone到~/.cache/yay/目录下)

千玄子大佬说:“简单说来就是把在 AUR 的 PKGBUILD 下下来然后比对是否要更新。”

-c(--clean)

清除不再需要的、没有被依赖的包。(相当于apt中的autoremove)

-P(--show)

执行特定的Print操作。可以跟的[option]有-c、-f、-d、-g、-n、-s、-u、-w、-q

-c(--complete)

Print所有源内和AUR软件包的列表。这是给命令行操作提供的,并不打算由用户直接使用。(意思是启用了这个选项以后你的终端会出现一大串长常的列表来告诉你你的Arch到底从哪里安装了哪些包,并不是直接给你用的,是作为数据留给别的命令来玩耍的)

-f(--fish)

在输出结果到终端时,会专门为fish用户做微调。(但是根据SamLukeYes大佬说他用fish体验下来并没有感知到加不加有什么区别,应该是属于感知不强的选项)

-d(--defaultconfig)

Print默认的yay配置。

-g(--currentconfig)

Print当前的yay配置。

-n(--numberupgrades)

数一数你现在还有多少AUR包待更新。yay作者不推荐你使用呢,他推荐你用yay -Qu或者wc -l来代替它。

-s(--stats)

会展示一大堆信息,如下

[zhullyb@Archlinux ~]$ yay -Ps
==> Yay version v10.2.0                             #yay版本
===========================================
==> Total installed packages: 1240                  #总共安装了多少包
==> Total foreign installed packages: 24            #多少包不是从源里安装的
==> Explicitly installed packages: 271              #有多少包是你自己主动安装的(而不是作为依赖安装的)
==> Total Size occupied by packages: 14.3 GiB       #安装的所有包合在一起一共占了你多少空间
===========================================
==> Ten biggest packages:                           #十个体积最大的包
wps-office-cn: 990.9 MiB
ttf-sarasa-gothic: 855.5 MiB
linux-firmware: 652.3 MiB
baidunetdisk-bin: 494.7 MiB
com.antutu.benchmark: 412.0 MiB
wine: 402.2 MiB
linux-xanmod-cacule-uksm-cjktty: 324.4 MiB
microsoft-edge-dev-bin: 316.4 MiB
wine-mono: 316.2 MiB
deepin-wine5-i386: 259.5 MiB
===========================================
:: Querying AUR...-> Missing AUR Packages:  zhullyb-archlinux-git    #AUR里找不到的包-> Flagged Out Of Date AUR Packages:  xml2         #AUR中被人标注过期的包

-u(--upgrades)

展示你所有待更新的包。

-w(--news)

展示来自http://archlinux.org的新闻。需要注意的是,这里的新闻是具有时效性的,只有在你的Arch最后一次更新以后发出来的新闻才会被显示出来。如果你不想要yay判断新闻时效性,你可以通过yay -Pww(即两个w)来获取所有能获得的新闻。

-q(--quiet)

在输出新闻的时候,仅输出新闻的标题。该功能需要与-w连用,即yay -Pwq

-G(--getpkgbuild)

后跟包名。需要注意的是,如果指定的包不存在于官方源,则无法输出,后跟-f、-p参数。

如果希望仅获取来自AUR(即排除第三方源的干扰)的PKGBUILD,后需跟-a参数。

-f(--force)

强制下载AUR中的PKGBUILD,如果它在yay缓存目录已经存在了,那就覆盖它!

-p(--print)

Print指定包的PKGBUILD。

pacman 拓展用法

yay虽然可以使用pacman的所有\,但是它远不仅于此。在这一段,我将向你介绍yay中包含的那些pacman不包括的pacman \

-S

-S, -Si, -Sl, -Ss, -Su, -Sc, -Qu

这些操作pacman都支持,而与pacman不同的是,yay的这些操作可以涵盖到官方源/第三方源和AUR中的所有包。

-Sc

yay将会清除AUR包构建时的缓存和没有被track的文件。没有被track的文件在这里指AUR包构建时下载的sources或者构建完成的pkg包,但是vcs sources会被保留(比如.git文件夹)

全局的[options]

全局是指在所有\下都可以加啦。

--repo

假定你给出的包名只存在源里(忽视AUR的存在)

-a(--aur)

假定你给出的包名只存在AUR中(忽视源的存在)

配置设置

原版的man手册排的比较混乱,我这里自己细分了几个类型,或许不是特别专业,但我希望能够帮助你们理解。

自定义调用命令型

--editor <command>

设置编辑时调用的编辑器。

--makepkg <command>

设置makepkg时需要调用makepkg命令(一般情况下用不到)

--pacman <command>

设置运行pacman时需要调用pacman命令(一般情况下用不到)

--tar <command>

设置makepkg解压tar资源时调用的tar命令(一般情况下用不到)

--git <command>

设置makepkg clone git资源时调用的git命令(比如你可以安装AUR中的fgit-go,使用--git fgit参数来让fastgit代理clone的过程)

--gpg <command>

设置gpg验证资源时调用的gpg命令

--sudo <command>

设置调用sudo获取su权限安装pkg时所调用的sudo命令。

自定义配置文件型

--config <file>

设置读取的pacman配置文件。

--makepkgconf <file>

设置读取的makepkg配置文件。

--nomakepkgconf

不读取系统中的makepkg.conf,仅使用Arch默认状态下的配置文件。

自定义路径类型

--builddir <dir>

设置build路径,默认路径为~/.cache/yay/

--absdir <dir>

设置abs路径,默认路径为~/.cache/yay/abs/

参数传递型

--editorflags <flags>

后跟需要跟随传递给编辑器的参数。如果需要传递多个参数,可以使用引号。

--mflags <flags>

后跟需要跟随传递给makepkg的参数。如果需要传递多个参数,可以使用引号。

这个用的人不多,但其实是非常好用的一个功能。在我们安装deepin-wine-tim等包的时候,很可能会遇到文件明明完整但checksum不通过的情况,这时我们可以跟一个--skipchecksums参数传递给makepkg以跳过checksum的过程。

--gpgflags <flags>

后跟需要跟随传递给pgp的参数。如果需要传递多个参数,可以使用引号。

--sudoflags <flags>

后跟需要跟随传递给sudo的参数。如果需要传递多个参数,可以使用引号。

菜单配置型

clean菜单

*--cleanmenu

启用清除询问菜单。(询问你是否需要清除已存在的文件)

--nocleanmenu

禁用清除询问菜单。(不询问你是否需要清除已存在的文件)

--answerclean

自动回答cleanmenu,后跟<All|None|Installed|NotInstalled>参数。

*--noanswerclean

不设置自动回答。

diff菜单

*--diffmenu

启用对比询问菜单。(询问你是否需要对比本地文件和AUR文件)

--nodiffmenu

禁用对比询问菜单。(不询问你是否需要对比本地文件和AUR文件)

--answerdiff

自动回答cleanmenu,后跟<All|None|Installed|NotInstalled>参数。

*--noanswerdiff

不设置自动回答。

edit菜单

--editmenu

启用修改询问菜单。(询问你是否需要修改PKGBUILD以及相关文件)

*--noeditmenu

禁用修改询问菜单。(不询问你是否需要修改PKGBUILD以及相关文件)

--answeredit

自动回答editmenu,后跟<All|None|Installed|NotInstalled>参数。

*--noansweredit

不设置自动回答。

upgrade菜单

*--upgrademenu

启用更新询问菜单。(询问你是否需要更新AUR包)

--noupgrademenu

禁用更新询问菜单。(不询问你是否需要更新AUR包)

--answerupgrade

自动回答upgrademenu,后跟<All|None|Installed|NotInstalled参数。

*--noanswerupgrade

不设置自动回答。

removemake菜单

*--askremovemake

在编译结束后,询问是否删除make depend。

--removemake

在编译结束后,删除make depend。

--noremovemake

在编译结束后,不删除make depend。

provides菜单

*--provides

搜索AUR包时,一同寻找其在AUR上的依赖程序。 当找到多个提供该依赖的包时,将出现一个菜单,提示您选择一个。尽管这不会引起注意,但这会增加依赖项解决时间。

--noprovides

搜索AUR包时,不在AUR上寻找其依赖程序。尽管yay不会再次弹出依赖菜单供你选择,yay调用pacman时依然会出现pacman的选择菜单让你选择。

pgpfetch菜单

*--pgpfetch

询问你是否从每个PKGBUILD的validpgpkeys字段导入未知的PGP密钥。

--nopgpfetch

不自动导入陌生的PGP密钥。

useask选项

*--useask

调用pacman的–ask询问用户是否删除系统中与当前包冲突的软件包。

--nouseask

不调用pacman的–ask询问用户是否删除系统中与当前包冲突的软件包,遇到冲突的软件包时直接报错,由用户来手动解决。

combinedupgrade菜单

--combinedupgrade

在系统更新期间,将源内包和AUR包的更新菜单合并到一起。

*--nocombinedupgrade

在系统更新期间,先支持源内包的升级,完成后再进行AUR包的升级。

T or F 型

devel

--devel

在系统更新期间,检查AUR的vcs包是否有更新,当前仅支持AUR的-git包。 devel查询是使用git ls-remote对比安装时和现在最新的commit_id完成的。

*--nodevel

在系统更新期间, 不检查AUR的vcs包是否有更新。

timeupdate

--timeupdate

在系统更新期间,将已安装软件包的构建时间与每个软件包的AUR的最后修改时间进行比较。

*--notimeupdate

在系统更新期间,不将已安装软件包的构建时间与每个软件包的AUR的最后修改时间进行比较。

redownload

--redownload

就算PKGBUILD已经存在,也要重新从AUR上获取一份新的PKGBUILD并覆盖原有PKGBUILD。

--redownloadall

就算PKGBUILD已经存在,也要重新从AUR上获取所有AUR包的PKGBUILD并覆盖原有PKGBUILD。

*--noredownload

当下载PKGBUILD时,,如果发现cache中的PKGBUILD版本>=AUR上的版本时,直接使用本地的PKGBUILD。

rebuild

--rebuild

即使在cache中有可用的二进制包的情况下,也始终要重新编译目标软件包。

--rebuildall

即使在cache中有可用的二进制包的情况下,也始终要重新编译所有的AUR包。

--rebuildtree

安装AUR包时,以递归方式重新编译并重新安装其所有AUR依赖包,即使已安装的依赖项也是如此。 该选项使您可以轻松地针对当前系统的库重新构建软件包,如果它们变得不兼容。(比如python3.8->3.9)

*--norebuild

构建软件包时,如果在缓存中找到该软件包并且该软件包与想要的软件包的版本相同,则跳过软件包的编译过程并使用现有的二进制程序。

sudoloop

--sudoloop

在后台循环调用sudo,以防止sudo授权在长时间构建期间超时。

*--nosudoloop

不在后台循环调用sudo,可能会导致sudo授权在长时间构建期间超时。

batchinstall

--batchinstall

在构建和安装AUR包时,对每个软件包的安装进行排序,而并非在构建之后立刻安装每个软件包时。 需要注意的是,一旦构建了所有软件包,或者需要构建队列中的软件包作为构建另一个软件包的依赖项,应当在安装队列中安装所有软件包。

*--nobatchinstall

在构建AUR包成功后立即安装。

clearafter

--cleanafter

在构建AUR包完成以后清除cache文件。

*--nocleanafter

在构建AUR包完成以后不清除cache文件。

其他型

--save

把你这一次执行yay后面跟的配置参数永久保存下来。

--aururl

更改aur源地址(默认为https://aur.archlinux.org),适用于中国用户,可以使用此参数将AUR的地址设置成清华的反代,具体的配置命令为

yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save

--sortby

在搜索过程中,按特定条件对AUR结果进行排序,后跟<votes|popularity|id|baseid|name|base|submitted|modified>参数,默认为votes

--searchby

通过指定查询类型来搜索AUR软件包,后跟<name|name-desc|maintainer|depends|checkdepends|makedepends|optdepends>参数,默认为name-desc

*--topdown

优先展示源内包,其次才是AUR包

--bottomup

优先展示AUR包,其次才是源内包

--requestsplitn <number>

设置在每次向AUR的请求的最大数值(默认150)。数值越高,请求时间越短,但是单次请求的数值过大会导致error。当这个数值>500时你应当特别注意这一点。

--completioninterval <days>

刷新完成高速缓存的时间(以天为单位,默认为7)。 将此值设置为0将导致每次刷新缓存,而将其设置为-1将导致永远不刷新缓存。

我个人的常用命令

yay
yay foo
yay -Sa foo
yay -Scc
yay -Ps
yay -Pww
yay -Gpa
yay -Ga

参考链接:

https://zhuanlan.zhihu.com/p/363666022

manjaro Linux yay常用命令整理大全相关推荐

  1. Linux 最常用命令整理,建议收藏!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费 ...

  2. Linux操作系统常用命令整理

    ++++++++++++++++++++++Oracle+++++++++++++++++++++++++++++ oracle修改sys密码SQL> alter user sys identi ...

  3. 无名岛外贸电商 远程操作linux网站常用命令,整理收集 Linux SSH命令 (

    远程SCP上传文件 scp -P 端口号 文件名 远程帐号@IP地址:待上传的文件地址拷贝远程文件到本地 scp -P 端口号 远程帐号@IP地址:待上传的文件地址 本地存放地址 rm -rf myd ...

  4. Linux上常用命令整理(二)—— paste

    上一篇整理了cat指令的几个基本常见用法,这次整理一下paste指令的基本用法. cat paste cut grep paste paste可以简单的理解为把两个文件的内容按列合并,与cat命令直接 ...

  5. Linux下netstat常用,Linux netstat常用命令

    1.统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2.统计httpd协议连接数(查看Apache的并发请求数及其TCP连接状态) ps -ef ...

  6. Manjaro KDE 21.2.5安装后配置、yay常用命令、常用软件安装及主题美化(2022.04.18)

    Manjaro KDE 21.2.5安装后配置.yay常用命令.常用软件安装及主题美化(2022.01.23) 结果展示 基本配置 关于 manjaro 的安装这里不再赘述了,安装的时候选择闭源驱动无 ...

  7. Linux系统常用命令及其使用详解大全

    Linux系统常用命令及其使用详解大全 整理了linux常用的命令,最长常用的也就几十个,cd,ls ,vi等等,有些容易忘记,经常拿出来看看. 其他的可以推荐一个网站,https://www.lin ...

  8. Linux 常用命令整理(Centos7) (时区/正则/sed/htop/screen/ln/awk/……)

    目录 Linux 常用命令整理(Centos7) (附加正则.时区.git等) 一.系统查询常用命令: 1.文件中空格制表符替换sed 2.查看宿主机的用户名密码 3.last .w.lastb 查看 ...

  9. Linux常用命令,Linux常用命令整理

    Linux常用命令一般可以分为很多种,比如查看硬件信息相关命令就有8个,分别是ifconfig.free.fdisk.ethtool.mii-tool.dmidecode.dmesg.lspci,用于 ...

  10. linux常用命令整理分类

    linux常用命令整理分类 快捷入口 命令帮助指令 开机关机指令 linux 文件权限 linux 文件操作 linux 文件内容查阅 指令和文件的搜索 文件系统 压缩文件 Shell script ...

最新文章

  1. Sitemesh排除Exclude不装饰特定页面的解决办法
  2. 初次使用PyCharm
  3. linux远程图形操作系统,二、Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面...
  4. left join on and 与 left join on where的区别
  5. java 事件分发线程_深入浅出Java多线程(2)-Swing中的EDT(事件分发线程) [转载]...
  6. Android 使用gradle版本冲突
  7. linux gtk python,python-Linux上具有pygtk(gtk.gdk)的桌面/根窗口上的键盘/鼠标事件
  8. mysql demo_mysql 查询小demo
  9. 教你如何安装字体包 ——思源免费商用字体
  10. 计算机病毒库更新记录表,计算机病毒库
  11. 系统测试(功能测试、性能测试、负载测试、压力测试、兼容性测试、安全测试、健壮性测试、配置测试、可用性测试、文档测试)
  12. mac 查看 本地网络代理
  13. C语言系列(11)——数组(02)
  14. 如何ping网站的IP地址
  15. Exposure X7胶片滤镜模拟软件 PS/LR调色插件 500+特效预设
  16. 20190513面试B树
  17. AJAX与cooikes
  18. python皮森发音_python 怎么读
  19. 细细品味Flex——BlazeDS开发指南
  20. H5+vant 电话通讯录 安卓融云功能

热门文章

  1. deflate php,我可以告诉mod_deflate和PHP只跳过一个目录上的压缩吗?
  2. 学校计算机教室学生使用记录表,学校学生信息技术教学计划
  3. 分布式事务解决方案:7种常见解决方案汇总
  4. win10文件服务器怎么进,如何从win10进入云服务器
  5. Pick peaks
  6. 右击文件转圈卡住、刷新、白屏、闪退、桌面崩溃的通用解决方法
  7. Linux查看gzip文件原始大小,Linux 文件管理:Linux gzip 压缩
  8. 机器视觉测量原理及其优势
  9. 2022年度总结|我的CSDN成长历程
  10. axios拦截,api统一管理