git如何安装aur_如何更新archlinux下的-git类型aur
Arch 用户软件仓库(Arch User Repository,AUR)是为用户而建、由用户主导的 Arch 软件仓库。aur有多种类型,根据它的名字后缀就可以猜出一二,比如除了名字不带任何后缀的普通aur,还有`-bin`类型、-git类型等。 普通aur(名字里不带-git后缀的)的PKGBUILD文件都有一个明确的版本号(pkgver),比如lazygit这个aur的PKGBUILD文件里
Arch 用户软件仓库(Arch User Repository,AUR)是为用户而建、由用户主导的 Arch 软件仓库。aur有多种类型,根据它的名字后缀就可以猜出一二,比如除了名字不带任何后缀的普通aur,还有`-bin`类型、-git
类型等。
普通aur(名字里不带-git
后缀的)的PKGBUILD文件都有一个明确的版本号(pkgver),比如lazygit这个aur的PKGBUILD文件里写着版本号为0.22.8:
yay这样的aur辅助工具(aur helper)只需要检查一下普通aur对应的PKGBUILD文件中的版本号是否更新过,就可以判断是否需要更新一个aur,检查更新的命令也很简单,就跟pacman更新一般的软件包类似:
yay -Syu
但是如果-git
类型的aur(名字里带有-git
后缀),比如lazygit-git
、networkmanager-dmenu-git
等,又是如何定义其版本并检查更新的呢?
安装这些`-git`类型的aur时,yay会去github等代码仓库下载最新的代码,然后在本地编译出可执行文件。因此我们可以认为这样的aur软件的版本并非一个写在PKGBUILD中的固定值,而是一个跟下载安装aur的时间点有关的动态值。
以-git
版本的`lazygit`,也就是lazygit-git
这个aur为例,在它的PKGBUILD文件中,我们虽然也能看到一个pkgver值(0.11.3.r55.e0015a2),但是显然`lazigit-git`这个aur的版本并不能用这样一个固定值来表示。
而更新这样的aur需要执行的命令需要加上两个额外的flag:
yay -S --devel --needed
按照这个github上的讨论,上面这条命令的作用是:updates the VCS clone sources, check source version, and recompile/install only if the new version is newer,也就是检查代码仓库更新情况,当有更新时就重新编译和安装aur。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)