What's the difference between pkg, pkg-bin and pkg-git on the AUR?

  • Normal packages are built from stable versions or stable git tags of a repository. The program is compiled in user's machine and then installed. This will take time.

  • Packages with -bin suffix are already built by upstream maintainer and is available somewhere. So, users do not have to compile the package in their machine. The PKGBUILD script downloads, extracts and install the files. Some proprietary software are released in this format where source code is not available.

  • Packages with -git suffix are built from the latest commit from git repository, no matter it is a stable or not. This way user get latest fix or patches. This also compiled in user machine, then installed.

The difference among the AUR packages can be easily understood from their corresponding PKGBUILD file (shell script like) in source() function. Here is an example:

  • For github-desktop the source is a stable git release tag:
pkgver=x.y.z
_pkgver="${pkgver}-linux1"
gitname="release-${_pkgver}"
https://github.com/shiftkey/desktop.git#tag=${gitname}
  • For github-desktop-bin the source is a already packed Debian package:
pkgver=x.y.z
_pkgver="${pkgver}-linux1"
gitname="release-${_pkgver}"
https://github.com/shiftkey/desktop/releases/download/${gitname}/GitHubDesktop-linux-${_pkgver}.deb
  • For github-desktop-git the source is latest master branch:
https://github.com/shiftkey/desktop.git

Further readings:

  • Arch Wiki: Arch User Repository (AUR)
  • Manjaro Forum: The difference between bin and non bin packages