![AUR 上的 pkg、pkg-bin 和 pkg-git 有什么区别?](https://linux22.com/image/161003/AUR%20%E4%B8%8A%E7%9A%84%20pkg%E3%80%81pkg-bin%20%E5%92%8C%20pkg-git%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
例如,有
https://aur.archlinux.org/packages/github-desktop/,
https://aur.archlinux.org/packages/github-desktop-bin/, 和
https://aur.archlinux.org/packages/github-desktop-git/。
我查看了 pkgbuilds,发现软件包之间没有容易识别的差异。这不仅仅是一个包,而是很多包。他们之间有什么区别?我应该安装哪一个?
答案1
普通包是从存储库的稳定版本或稳定 git 标签构建的。该程序在用户机器上编译然后安装。这需要时间。
带有后缀的软件包
-bin
已经由上游维护者构建并且可以在某处使用。因此,用户不必在自己的机器上编译该包。该PKGBUILD
脚本下载、解压并安装文件。一些专有软件以这种格式发布,但源代码不可用。带有后缀的包
-git
是根据 git 存储库的最新提交构建的,无论它是否稳定。这样用户可以获得最新的修复或补丁。这也在用户机器中编译,然后安装。
AUR包之间的区别可以从它们对应的PKGBUILD
文件(类似shell脚本)的source()
功能上很容易理解。这是一个例子:
- 为了
github-desktop
源是稳定的git发布标签:
pkgver=x.y.z
_pkgver="${pkgver}-linux1"
gitname="release-${_pkgver}"
https://github.com/shiftkey/desktop.git#tag=${gitname}
- 为了
github-desktop-bin
源是一个已经打包了Debian 软件包:
pkgver=x.y.z
_pkgver="${pkgver}-linux1"
gitname="release-${_pkgver}"
https://github.com/shiftkey/desktop/releases/download/${gitname}/GitHubDesktop-linux-${_pkgver}.deb
- 为了
github-desktop-git
来源是最新大师分支:
https://github.com/shiftkey/desktop.git
进一步阅读:
答案2
-bin
表示它将安装二进制文件而不是本地编译。
-git
表示会直接拉git
取最新版本(这意味着缺少的版本-git
比较保守,并且已经过测试)。