AUR 上的 pkg、pkg-bin 和 pkg-git 有什么区别?

Ray*_*111 12 arch-linux package-management repository aur

例如,有

https://aur.archlinux.org/packages/github-desktop/ ,

https://aur.archlinux.org/packages/github-desktop-bin/,以及

https://aur.archlinux.org/packages/github-desktop-git/

我查看了 pkgbuilds,发现包之间没有容易识别的区别。这不仅仅是一个包,而是其中的许多包。它们之间有什么区别?我应该安装哪一个?

Bis*_*iyo 12

  • 普通包是从稳定版本或存储库的稳定 git 标签构建的。程序在用户机器上编译,然后安装。这需要时间。

  • 带有-bin后缀的包已经由上游维护者构建并且在某处可用。因此,用户不必在他们的机器上编译包。该PKGBUILD脚本下载、提取和安装文件。某些专有软件以这种格式发布,而源代码不可用。

  • 带有-git后缀的包是从 git 存储库的最新提交构建的,无论它是否稳定。这样用户可以获得最新的修复或补丁。这也在用户机器中编译,然后安装。

AUR包之间的区别可以从它们对应的PKGBUILD文件(类似shell脚本)在source()功能上很容易理解。下面是一个例子:

pkgver=x.y.z
_pkgver="${pkgver}-linux1"
gitname="release-${_pkgver}"
https://github.com/shiftkey/desktop.git#tag=${gitname}
Run Code Online (Sandbox Code Playgroud)
pkgver=x.y.z
_pkgver="${pkgver}-linux1"
gitname="release-${_pkgver}"
https://github.com/shiftkey/desktop/releases/download/${gitname}/GitHubDesktop-linux-${_pkgver}.deb
Run Code Online (Sandbox Code Playgroud)
https://github.com/shiftkey/desktop.git
Run Code Online (Sandbox Code Playgroud)

进一步阅读: