aur-sync
Synchronize and build Arch User Repository packages
TLDR
Download one or more packages and their dependencies from the AUR, build them, and add them to a local repository
Upgrade local repository packages
Clean build files after install
Install a package without viewing changes in Vim and do not confirm dependency installation
Ignore specific packages when upgrading
SYNOPSIS
aur-sync [options] <packages...>
aur-sync -u [options]
aur-sync -c [options] [<packages...>]
aur-sync -r <repo> [options] [<packages...>]
PARAMETERS
-u, --upgrade
Upgrade all installed AUR packages that have newer versions available in the AUR.
-c, --clean
Clean old package files and build directories managed by aur-sync.
-r <repo>, --repo <repo>
Specify the local AUR repository to use for building and installing packages. This is crucial for aur-sync's operation.
-d, --dryrun
Perform a dry run; show what would be done without actually executing any changes.
--force
Force rebuild existing packages even if they are up-to-date or already present in the local repository.
--chroot <dir>
Build packages within a specified chroot directory, providing an isolated and clean build environment.
--makepkg-args <args>
Pass additional arguments directly to the makepkg command during package building.
--sudo-args <args>
Pass additional arguments directly to the sudo command when elevated privileges are required.
--ignore <pkg>
Ignore a specific package during upgrade or synchronization operations.
--no-confirm
Do not prompt for confirmation during operations, proceeding automatically.
-s, --sync
Only synchronize PKGBUILDs from the AUR, without building or installing packages.
-h, --help
Display a help message and exit.
-v, --version
Display version information and exit.
DESCRIPTION
aur-sync is a command-line utility from the aurutils project designed to streamline the management of packages from the Arch User Repository (AUR). It automates the process of fetching PKGBUILDs, resolving both official repository and AUR dependencies, building packages, and installing/upgrading them.
A key feature is its ability to interact with a local pacman repository, allowing users to build AUR packages once and then install them on multiple machines or reinstall them easily using pacman -S. It handles complex dependency chains, including those where AUR packages depend on other AUR packages. This tool significantly simplifies the workflow for Arch Linux users who rely heavily on the AUR, providing a robust and efficient alternative to manual building or less sophisticated AUR helpers. It promotes a more secure approach by often being used in conjunction with chroot environments for isolated builds.
CAVEATS
aur-sync relies heavily on a properly configured aurutils setup, including a dedicated local pacman repository. Users must ensure their `/etc/pacman.conf` includes this repository. Manual intervention may be required for complex build failures or dependency issues not automatically resolved. Always review PKGBUILDs for security vulnerabilities or malicious code before building packages, especially from untrusted sources, as they can execute arbitrary commands during the build process.
SECURITY PRACTICES
It is highly recommended to build AUR packages within a clean chroot environment using aur-sync's `--chroot` option. This isolates the build process, preventing potential system compromise from malicious PKGBUILDs. Always inspect the PKGBUILD file, and any associated `.install` or `.hook` scripts, for unusual commands or behavior before initiating a build, especially for packages from unknown or less reputable sources.
LOCAL REPOSITORY INTEGRATION
The strength of aur-sync lies in its seamless integration with a local pacman repository. By adding AUR packages to a local repository managed by aurutils, users can install, update, and remove these packages using standard pacman commands (e.g., `pacman -S my-aur-package`, `pacman -Syu`). This provides a consistent package management experience and enables easy synchronization across multiple machines or after system reinstallations, as packages are pre-built and readily available.
HISTORY
Part of the aurutils project, aur-sync was developed to provide a more robust and secure method for managing AUR packages compared to earlier AUR helpers. It gained popularity as Arch Linux users sought better ways to integrate AUR packages into their system management workflows. It leverages pacman's capabilities by building AUR packages into a local repository, allowing for seamless upgrades and dependency resolution through standard pacman commands. Its design focuses on efficiency and security, particularly through its strong support for chroot builds, which became a widely adopted best practice for AUR package management.