▸ Agent Skills
2 min read

AUR

Publishing To The Arch User Repository

Setup

First go to https://aur.archlinux.org and make an account. Be sure to add the proper ssh keys. Next, clone an empty git repository using this command.

git clone https://aur.archlinux.org/your-repo-name

Terminal window

After completing the steps above, create a file with the name PKGBUILD. Once the file is created you can move onto the next step.

Writing a PKGBUILD file

pkgname=<pkgname>pkgver=1.0.0pkgrel=1pkgdesc="Description of your app"arch=('x86_64' 'aarch64')url="https://github.com/<user>/<project>"license=('MIT')depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1')options=('!strip' '!emptydirs')install=${pkgname}.installsource_x86_64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_amd64.deb")source_aarch64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_arm64.deb")

PKGBUILD

  • At the top of the file, define your package name and assign it the variable pkgname.
  • Set your pkgver variable. Typically it is best to use this variable in the source variable to increase maintainability.
  • The pkgdesc variable on your aur repo’s page and tells vistors what your app does.
  • The arch variable controls what architectures can install your package.
  • The url variable, while not required, helps to make your package appear more professional.
  • The install variable specifies the name of .install script which will be run when the package is installed, removed or upgraded.
  • The depends variable includes a list of items that are required to make your app run. For any Tauri app you must include all of the dependencies shown above.
  • The source variable is required and defines the location where your upstream package is. You can make a source architecture specific by adding the architecture to the end of the variable name.

Generating .SRCINFO

In order to push your repo to the aur you must generate an .SRCINFO file. This can be done with this command.

makepkg --printsrcinfo > .SRCINFO

Terminal window

Testing

Testing the app is extremely simple. All you have to do is run makepkg within the same directory as the PKGBUILD file and see if it works

Publishing

Finally, after the testing phase is over, you can publish the application to AUR (Arch User Repository) with these commands.

git add .
git commit -m "Initial Commit"
git push

Terminal window

If all goes well, your repository should now appear on the AUR website.

Examples

Extracting From A Debian Package

# Maintainer:# Contributor:pkgname=<pkgname>pkgver=1.0.0pkgrel=1pkgdesc="Description of your app"arch=('x86_64' 'aarch64')url="https://github.com/<user>/<project>"license=('MIT')depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1')options=('!strip' '!debug')install=${pkgname}.installsource_x86_64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_amd64.deb")source_aarch64=("${url}/releases/download/v${pkgver}/appname_${pkgver}_arm64.deb")sha256sums_x86_64=('ca85f11732765bed78f93f55397b4b4cbb76685088553dad612c5062e3ec651f')sha256sums_aarch64=('ed2dc3169d34d91188fb55d39867713856dd02a2360ffe0661cb2e19bd701c3c')package() {  # Extract package data  tar -xvf data.tar.gz -C "${pkgdir}"
}

PKGBUILD

post_install() {  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor  update-desktop-database -q}
post_upgrade() {  post_install}
post_remove() {  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor  update-desktop-database -q}

my-tauri-app.install

Building from source

# Maintainer:pkgname=<pkgname>-gitpkgver=<pkgver>pkgrel=1pkgdesc="Description of your app"arch=('x86_64' 'aarch64')url="https://github.com/<user>/<project>"license=('MIT')depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1')makedepends=('git' 'openssl' 'appmenu-gtk-module' 'libappindicator-gtk3' 'librsvg' 'cargo' 'pnpm' 'nodejs')provides=('<pkgname>')conflicts=('<binname>' '<pkgname>')source=("git+${url}.git")sha256sums=('SKIP')
pkgver() {  cd <project>  ( set -o pipefail    git describe --long --abbrev=7 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"  )}
prepare() {  cd <project>  pnpm install}
build() {  cd <project>  pnpm tauri build -b deb}
package() {  cp -a <project>/src-tauri/target/release/bundle/deb/<project>_${pkgver}_*/data/* "${pkgdir}"}

PKGBUILD


Support on Open CollectiveSponsor on GitHub

© 2026 Tauri Contributors. CC-BY / MIT


Last updated Oct 08, 2026