pacaur - a fast workflow AUR helper using cower as backend
Usage: pacaur <operation> [ options ] [ target(s) ]
Pacaur is an Arch User Repository (AUR) helper aiming at speed and simplicity, designed to minimize user prompt interaction and to use an uncluttered interface. It is built upon the well designed cower and expac C backends.
Invoking pacaur consists of supplying an operation, any applicable options, and usually one or more targets. A target is usually a package name or a search string.
Pacaur is targeted at advanced users who want some degree of automation for repetitive tasks. As such, the user is expected to be familiar with the AUR manual build process with makepkg and its configuration options, as well as being knowledgeable about sudo and gpg configuration.
Two sets of command line options are provided: commands which call the pacman binary and extend for AUR functions (-S, -Ss, -Si, -Sw, -Su, -Qu, -Sc, -Scc), and commands which are AUR specific (-s, -i, -d, -m, -y, -k, -u). As such, pacaur can be used by users who prefer to have a single tool to manage officials and AUR repositories, or by users who prefer to keep their AUR frontend separated from pacman.
- -S, -Ss, -Si, -Sw, -Su, -Qu, -Sc, -Scc
Pacaur wraps pacman operations and extends respectively its install, search, info, download, update, check updates and clean functions to the AUR. This behavior is optional and can be disabled with the fallback variable in the config file. Pacaur will also pass any pacman related options to the pacman binary.
- -s, --search
Search for packages with the target(s) as the search term(s). Queries with multiple targets will return the result of the intersection of all query results. Extended regex patterns as defined by POSIX are allowed.
- -i, --info
Show info for target(s).
- -d, --download
Download target(s) PKGBUILD. Pass this option twice to fetch dependencies (done recursively).
- -m, --makepkg
Download PKGBUILD and build target(s). Missing dependencies will be installed as required to ensure the build to succeed, before being automatically uninstalled.
- -y, --sync
Download PKGBUILD, build and install target(s). Missing dependencies will be automatically installed as required.
- -k, --check
Check foreign packages for updates in the AUR. Without any arguments, all manually installed packages will be checked. If target(s) are supplied, only those packages will be checked.
- -u, --update
Update foreign packages in the AUR. Without any arguments, all manually installed packages will be updated. If target(s) are supplied, only those packages will be updated.
- -v, --version
Display version and quit.
- -h, --help
Display the help message and quit.
- -e, --edit
Edit PKGBUILD and view install script when downloading or building target(s). Can also be used as a standalone command.
- -c, --clean
Remove build files after building target(s). Pass this option twice to force cleaning when the cleandevel option is disabled. Can also be used as a standalone command. When passed twice without any arguments, clean the entire build directory.
- -q, --quiet
Show less information for search and query operations. Search will only show package names and not version, group, and description information.
- -a, --aur
When used with pacman extended operations, only search or install target(s) from the AUR.
- -r, --repo
When used with pacman extended operations, only search or install target(s) from the repositories.
- -f, --force
Overwrite existing files when downloading target(s) PKGBUILD.
When used with update operations, also upgrade AUR development packages (supported are cvs, svn, git, hg, bzr and darcs development packages, as well as nightly build packages).
- --ignore target(s)
Ignore a target upgrade. Can be used more than once. Also accepts a comma delimited list as a single argument. Packages listed in pacman and cower's IgnorePkg directive are honored.
Do not reinstall target(s) that are already up to date. The build of development packages (supported are svn, git, hg and bzr development packages) that are found up-to-date after the source checkout will be skipped.
Perform commands without confirmation from the user.
Perform commands without editing any installation files. Bypass the --edit option.
Always rebuild packages regardless of any existing file in $PKGDEST directory, and regardless of up-to-date status of development packages.
Enable silent output. This will send the output of the makepkg build() function to a text file in the build directory named pkgname-pkgver-pkgrel-arch.log. Additional pacman output for providers and cached packages installation will also be hidden.
When searching the AUR, ignore all results marked as out of date.
When searching the AUR, also show results marked as out of date. This take precedence over the IgnoreOOD option of the cower config file.
When searching the AUR, sort the results by alphabetical order.
When searching the AUR, sort the results by decreasing number of votes.
- system config
Pacaur honors a system-wide config file which will be looked for first at
and falling back to
- user config
User-defined configuration files overriding the general settings will be looked for first at
and falling back to
- other config
In addition, pacaur fully honors cower config file. See cower(1).
The available options are:
Define the build directory. Default is $BUILDDIR, with a fallback on /tmp/pacaurtmp-$USER.
Define the editor. Default is $EDITOR, with a fallback on vi.
Enable PKGBUILD editing prompt. Default is true.
Enable install script editing prompt. Default is true.
Extend pacman commands to the AUR. Default is true.
Clean build directory after operation. Default is true.
When clean config option is enabled, clean build directory of development packages. Default is true.
When searching the AUR, sort the results by decreasing number of votes. Default is true.
Prevent sudo timeout. This option overrides the system-wide sudo configuration and refresh the sudo timestamp automatically in a loop when building packages. Default is false.
- dependency solver and missing metadata
The dependency tree is solved using the full secured RPC AUR interface. Packages which are missing AUR metadata may however not provide correct dependencies information.
All packages uploaded to the AUR before 2014-05-27 18:35 UTC (AUR 3.0.0 release) and packages that use architecture-specific fields uploaded to the AUR before 2014-12-29 02:37 UTC (pacman 4.2 release in [core]) are concerned and should be reuploaded by their respective maintainers. If you encounter such packages, please notify their maintainer about their missing AUR metadata status.
Enforced reupload of all packages to the AUR is currently planned for AUR 4.0.0.
- sudo configuration
To be used with minimal password prompting, sudo should be configured accordingly. See sudoers(5). Alternatively, enable the sudoloop config option.
- pacman misc options
Miscellaneous options enabled in pacman.conf are taken into account. Thus, colored output can be enabled with the Color option, while a detailed interface displaying name, version and size of packages formatted as a table is available through the VerbosePkgLists option.
- environment variables
Makepkg environment variables ($PACMAN, $PKGDEST, $SRCDEST, $BUILDDIR) are fully honored. See makepkg(8).
- build directory
You might want to change the default build directory (set on /tmp on a temporary filesystem residing in volatile memory) especially when building big packages on a low-memory machine.
- build cleaning
If you want to avoid cleaning up the build directory of packages, disable the clean config option. If you want to avoid cleaning up the build directory of development packages, disable the cleandevel config option. This will speed up the update even if the clean config option is enabled for normal packages. You might also want to change the default temporary directory which is automatically cleared upon reboot. Alternatively, you can enable source caching with the makepkg $SRCDEST environment variable.
- interactive PKGBUILDs
Packages requiring user input while building are not supported and might fail to install properly. There are currently no official directive about these interactives PKGBUILDs, but some of the official pacman developers expressed the opinion that PKGBUILDs should always provide default compilation options.
- host name error
If a lot of "Couldn't resolve host name" and "Timeout was reached" messages are outputed while checking for updates in spite of the internet line working correctly, ensure your local DNS server is correctly configured to improve queries speed. Using Google primary DNS (220.127.116.11 and 18.104.22.168) might also help.
- alternative installation root
The alternative installation root --root /path option of pacman is not supported. You might want to chroot to the new path and use pacaur from there instead.
cower(1), pacman(8), makepkg(8), sudoers(5)
Remy Marquis <firstname.lastname@example.org>
All credits go to all direct or indirect contributors. Many thanks to all of you!
[ca] - Català - Alex "alexhenrie" Henrie
[de] - Deutsch - Marco "BigBoot" Kirchner, "HerrNieschnell", "pszalanski", Stefan "rumpelsepp" Tatschner
[es] - Español - Germán "gosella" Osella Massa
[fr] - Français - "spider-mario", "Neitsab"
[it] - Italiano - Demenico "NoMore201" Lezzi
[ja] - 日本語 - Colin "fosskers" Woodbury
[pl] - Polski - Tomasz "Ludvick" Niedzielski
[pt] - Português - Thiago "thiagowfx" Barroso Perrotta
[ru] - Русский - "kyak"
[tr] - Türkçe - Volkan "wakeup" Gezer