A secure package manager for Arch Linux and the AUR.

Version on this page:3.1.9
LTS Haskell 20.26:3.2.9
Stackage Nightly 2022-11-17:3.2.9
Latest on Hackage:3.2.10

See all snapshots aura appears in

GPL-3.0-only licensed by Colin Woodbury
Maintained by [email protected]
This version can be pinned in stack with:aura-3.1.9@sha256:ad36d9c9404ee533775e79deeb21a099e078b0df07138644973456fac45e6538,3401


Aura is a package manager for Arch Linux. Visit its main README here:


Aura Changelog

3.1.9 (2020-09-11)


  • Pass -u to -Cc to save N installed packages, and remove all uninstalled ones. Example:
> sudo aura -Cc 3 -u
aura >>= The cache contains 1706 packages, consuming 7324 megabytes.
aura >>= 3 versions of each installed package will be kept.
aura >>= The rest will be deleted. Okay? [Y/n] n

Otherwise, the usual behaviour of -Cc is to save N packages in the cache, regardless of if they are installed or not.


  • AUR packages with + in their name (e.g. libc++) can be searched and installed. #630

3.1.8 (2020-08-23)


  • Updated Polish translations. Thank you, Michał Kurek!
  • Bumped dependency bounds.

3.1.7 (2020-08-12)

Thanks to Sam Horvath-Hunt for contributing to this release.


  • Users can now configure Aura in /home/YOU/.config/aura/aura.conf instead, which takes priority over the default one at /etc/aura.conf.


  • Complications involving the cloning of *-git packages. #615

3.1.6 (2020-07-21)


  • Binary size reduced by 60%!

3.1.5 (2020-07-15)


  • Updated Spanish translations. Thank you, Max Ferrer!


  • Provide better output when a listed dependency doesn’t exist.

3.1.4 (2020-06-11)


  • PATH is now passed down to all internal pacman calls. This fixes the inability to install DKMS packages. #584

3.1.2 (2020-06-10)

This release fixes a regression in 3.1.1. Please update as soon as possible.


  • The -c / --clean flag for -A. After a package’s tarball has been built and copied to the package cache, delete its build directory immediately. By default, build directories are left in /tmp to be cleaned by the OS, but for users who don’t restart their machines often, this can clog up disk space.


  • Apologies to Aura users. The -E change in the previous release caused a lot of unexpected behaviour, so that change has be revoked. A future version of Aura will explore a better solution for handling environment variables.

3.1.1 (2020-06-02)


  • Running Aura with sudo -E aura ... will ensure that the transfer of the true user’s environment will persist all the way to the internal makepkg calls. This should help people who have set custom paths for GPG, npm, etc., via environment variables. See #606. Users with standard setups don’t need to worry about -E.


  • Explicit dependency on microlens. Everything Aura uses now comes through rio.

3.1.0 (2020-05-27)


  • The --skipdepcheck flag to skip all dependency solving. Combine this with --hotedit to avoid discrepancies in custom dependency listings.
  • --skippgpcheck is now available to pass through to makepkg.
  • aura.conf now has a man page.


  • Bumped aeson and http-client bounds.

3.0.0 (2020-05-20)


  • Aura is now configurable via a conf file! Aura expects it at /etc/aura.conf, but will not break if it’s missing. If you install Aura via its AUR package, this file will be installed for you automatically.
  • A new top-level command: -P. This allows users to analyse PKGBUILD files manually, as is usually done during building.
    • -Pf accepts a path to a PKGBUILD.
    • -Pd accepts a path to a directory containing a PKGBUILD.
    • -Pa to scan the PKGBUILDs of all locally installed AUR packages.
    • -P on its own will read from stdin. Combine this with -Ap to pull from the AUR:
> aura -Ap myget | aura -P

    sudo pacman -S aurvote

aura >>= sudo indicates that someone may be trying to gain root access to your machine.
aura >>= Potential PKGBUILD vulnerabilities detected.
  • A new flag --vcspath to accompany the new VCS build behaviour (see below).
  • A new flag --allsourcepath to accompany the restored --allsource functionality (see below).
  • -O --adopt can now be called as -Oa.


  • VCS packages (e.g. *-git, *-svn, etc.) and their cloned sources are now built and stored in /var/cache/aura/vcs. Subsequent builds will no longer reclone everything. #462
  • --hotedit will now offer to edit .install and .patch files. #208
  • Some modules have been renamed and moved around.
  • Aura.Diff and Aura.Pkgbuild.Base have had their contents folded into other modules.


  • A regression that broke -Bc. #592
  • The functionality of --allsource has been restored. #538
  • A minor difference in the behaviour of -Ss relative to pacman. #599

2.3.0 (2020-04-22)


  • Allow --asdeps to be passed to -A commands.
  • -y can be passed to -A commands again, like -Ayu.
  • Dutch translations. Thank you, Joris Blanken!


  • ~15% reduction in binary size and much faster compiles due to removal of unnecessary dependencies.
  • -Cc now reports how much storage space was cleared.
  • A few more messages when using --log-level=debug.


  • makepkgConfFile wasn’t being used anywhere.


  • A bug involving multiple prompts appearing at the same time when more than one package needs a custom provider selection. #541
  • A bug involving the + character appearing in package names, like crypto++. #520
  • A regression where the name of a parent package wouldn’t be displayed when a dependency couldn’t be found. #513

2.2.1 (2020-03-01)


  • Further improved Italian translations.


  • Pass the Pacman flag --overwrite through properly.

2.2.0 (2020-02-25)


  • --log-level flag. Setting this to debug will give you some verbose logging output. This is different from the usual -x behaviour.


  • Updated Italian translations. Grazie, Cristian Tentella!
  • Support for GHC 8.8.2.


  • Users with many AUR packages installed will no longer see mysterious AUR connection failures. (#528)

2.1.0 (2020-02-17)


  • Reinstated -Aw, which downloads a snapshot tarball of an AUR package.

2.0.6 (2020-02-16)


  • Fixed the broken -S.

2.0.5 (2020-02-16)


  • Fixed a bug that prevented -Syuu and -Scc.

2.0.4 (2020-02-08)


  • Removed fused-effects dependency in favour of rio to simplify code.



  • Updated Spanish translations. Thanks to Max Ferrer!


  • Bug #543 involving locales. Thanks to Alexey Kotlyarov!


  • Bug fixes and performance improvements.


This is a large update representing about a month of full-time effort. Aura is now much faster, solves dependencies more reliably, has a few new features, and many fewer bugs. This is all while modernizing the code and seeing a ~15% decrease in overall code size.


Dependency Handling

  • Dependency resolution is now much faster and handles split packages correctly. As such, the following troublesome packages now build correctly:
    • android-sdk
    • backintime
    • clion
    • libc++
    • mysql-connector-c++
    • telegram-desktop-dev
    • zoom
  • Dependency provider selection for AUR packages.
    • Example: cron is a legal dependency to specify, but there exists no package with that name. cronie and fcron both “provide” cron, and now the user can manually make a selection.
    • Including --noconfirm will have Aura make its best guess.
  • If the exact version of an AUR package is available in the package cache, it will be used automatically instead of being rebuilt. You can instead force a rebuild with --force.


  • In light of the recent compromise of the Acroread package, Aura nows performs static PKGBUILD analysis before building, and warns the user if potentially malicious terms like curl are found.
    • This feature can be disabled with --noanalysis. Caveat emptor!
    • This feature is a supplement in checking PKGBUILD safety, not a fool-proof replacement. It is always your responsiblity to understand what build scripts are running on your machine.

Saved Package State

  • -Su and -Au automatically save a package state before updating (unless you’re doing --dryrun). This lets you more easily roll back from problematic updates.
  • Saved package states can now be “pinned”, which will protect them from removal via -Bc. To pin a certain state, open its JSON file (see below in Breaking Changes) and edit the pinned field from false to true.

CLI Flags

  • Various CLI flag improvements:
    • -A --json <packages>. Query the AUR directly for a package’s raw JSON data. Great for debugging.
    • -Br has been restored as short-hand for -B --restore.
    • Added -Bl to list all saved package state filenames.
    • -Cb added as a short-hand for -C --backup.
    • The Pacman flags --ignoregroup, --cachedir, --config, and --logfile also now affect Aura.
    • --dryrun no longer requires sudo.
    • --color never turns off all text colouring. Further, by default, Aura will only automatically colour text when it detects that the output device is a terminal (and not a Unix pipe, say). These behaviours match Pacman.


  • Improved Japanese translations thanks to Onoue Takuro.
  • Improved Portuguese translations thanks to Wagner Amaral.
  • Improved Russian translations thanks to Alexey Kotlyarov.


  • Packages that aren’t interdependent will be built in succession without prompting the user, only calling down to pacman once per group.
  • Modernized the Haskell code:
    • Removed custom CLI flag handling in favour of optparse-applicative.
    • Removed custom package version number parsing in favour of versions.
    • Removed custom text colouring code in favour of prettyprinter.
    • Removed the Aura Monad in favour of Extensible Effects via freer-simple.
    • Removed custom shell interaction code in favour of typed-process.
    • Used async to make AUR and pacman calls concurrent.
    • megaparsec parsers used in place of hacky Regexes.
  • aura is now a library as well, and can be pulled into other Haskell projects.

Breaking Changes

  • -B now saves package states as JSON. This makes them readable by other tools, and also improves internal code quality. All old package state files are no longer readable by Aura.
    • The "time" field in these files is now a Haskell ZonedTime.
  • Various CLI flag changes:
    • --auradebug is now just --debug, matching Pacman.
    • --aurignore is now just --ignore, matching Pacman.
    • -Aw has been removed.
    • -y no longer works with -A. Perform an -Sy ahead of time instead.
    • -O no longer accepts arguments to adopt packages, it only displays current orphans. Use -O --adopt instead for the old behaviour.
    • -Ccc is now -C --notsaved.
  • Help messages (-h) are no longer localised.
  • Support for powerpill removed.
  • Support for customizepkg removed.

Bug Fixes

  • Aura no longer returns an exit code of 1 if no packages are available to upgrade.
  • -Aq no longer fails at the package installation step.
  • Ctrl+C at certain moments no longer preserves the Pacman lock file.
  • makepkg output is no longer coloured green.


  • Dependency resolution vastly improved. We removed the Bash parser that used to poorly handle the bulk of this.
  • Chinese translations thanks to Kai Zhang.
  • -M operator and associated code fully removed.


  • Updated Swedish translations
  • Disabled -M operator due to the abs tool being deprecated by Arch Linux


  • Fixed behaviour of -B flags. For restoring of saved states, use the long form: aura -B --restore. Cache backups also need to take their long form: aura -C --backup.
  • Fixed handling of language flags. Thanks to Doug Patti!


  • Aura now uses version 5 of the aur package, to fix a critial bug
  • Updated Spanish and Polish


  • Bash parser bug fix. Fixes some packages.


  • Bash parser extended to be able to handle bash array expansions. This enables packages with more (Bash-wise) complex PKGBUILDs to build properly.

  • -Ai and -As show popularity values.
  • aur4 is no longer referenced.
  • Yes/No prompts are now localized.
  • Aura can be built with stack.
  • Updated German translation.

  • Aura builds against GHC 7.10.
  • Updated German and Russian translations.

  • Must use --builduser when building as root.
  • Bug fix regarding --needed.
  • Updated Portuguese translation.

  • Pacman flags --ignore and --ignoregroup now work.
  • Bug fixes.

  • (Bug fix) If a user tries to install a package in IgnorePkg, they will now be prompted.
  • Man page updated.
  • Dependencies updated.

  • (Bug fix) Tarballs are now downloaded from a URL provided by the RPC.

  • Last major version of Aura 1! We have entered the design phase for Aura 2, the implementation of which will transform Aura into a multi-distro package management platform.

  • Aura 1 itself has entered “legacy” mode. The only releases to be made on Aura 1 after this will be of 1.3.0.x. You’ll likely never see 1.3.1.x.

  • Befitting a major release, we have:

    • New AUR interaction layer via the aur package. This fixes nasty “AUR lookup failed” errors.
    • http-conduit dropped for wreq, which is much easier to use.
    • Better version number parsing/comparison on installation/upgrading.
    • Package state backups have had their format changed. This BREAKS all previously saved states. Please delete your old ones!
    • Implemented extended --needed functionality for the AUR side of Aura. AUR packages won’t build if they’re already installed.
    • Indonesian translations!
    • Other updated translations.

  • zsh completions completely redone (thanks to Sauyon Lee!) Having aur-git installed will let you auto-complete on AUR packages.

  • -As --{head,tail} can now be passed numbers to truncate the results to any number you want. The default is 10.
  • Updated Russian translation.

  • Expanded Bash completions: Aura Only * Expanded completion for all options and search sub-options * Package completion for -M/–abssync * Completion for orphans using self-generated list Pacman * Include completion for all pacman options * Directory or file completion for some common options
  • Use --dryrun with -A and -M install options to test everything up until actual building would occur (dependency checks, etc.)

  • Network.HTTP.Conduit errors are now caught properly and don’t crash aura.
  • customizepkg usage corrected.
  • zsh completions slightly expanded.

  • Moved to Network.HTTP.Conduit from Network.Curl This fixes the AUR connection issues. Binary size has increased by quite a bit.

  • -Ai now shows dependencies.

  • Happy New Year!
  • makepkg’s --ignorearch flag is now visible to Aura. This allows users to build AUR packages on ARM devices without worrying about architecture restrictions in PKGBUILDs.
  • Use --head and --tail to truncate -As results.
  • -B now uses local time.
  • Bug fixes and translation updates

  • -As results now sort by vote. Use --abc to sort alphabetically.
  • “[installed]” will now be shown in -As results if you have it.
  • Fixed Bash parsing bug involving \\ in arrays
  • Fixed broken -C
  • Updated Italian translation
  • Updated French translation

  • Happy Canadian Thanksgiving
  • Bug fixes

  • Norwegian translation added!
  • Dependency checks slightly faster
  • --hotedit and --custom can now be used together
  • Bug fixes

  • New builduser option
  • Prelude.head bug fixed
  • Dependency checking is faster
  • New -k output
  • --absdeps works properly now
  • Other bug fixes

  • Bug fixes and spelling corrections.

  • Fixes dependency build order bug.

  • New operator -M for building ABS packages. Has its own family of options.
  • Pre-built binary package available (x86_64 only)
  • Updates to Aura are now prioritized like pacman updates.
  • Dependency checking is now faster.
  • Use -Ccc to clean the cache of only packages not saved in any package record.
  • -Ai now shows Maintainer name.
  • Extensive API changes.

  • New option --no-pp. Disables use of powerpill, even if you have it.
  • This is a light release, as major work is being done on version 1.2 on another development branch.

  • Compatable with pacman 4.1
  • All pacman-color support removed
  • -As output slightly altered to match pacman.
  • Bug fixes.

  • New option --build for specifying AUR package build path.
  • Vote number now shown in -As output.
  • Fixed Repo/AUR name collision bug.
  • API Change: Argument order for functions in Aura/Languages changed.

  • customizepkg now usable with Aura. Activate with the --custom option.
  • API Change: Aura/Pkgbuilds now a set of libraries as Aura/Pkgbuild/*

  • Fixed flaw in -Br.
  • Fixed repititious -Ad output.
  • API Change: Aura/AurConnection renamed to Aura/AUR
  • API Change: function names in Aura/Languages now have better names.

  • Haskell deps have been moved back to makedepends.
  • haskell-http removed as dependency.
  • API Change: function naming conventions in Aura/Languages.hs has been changed. The localisation guide was also updated to reflect this.

  • Support for the $LANG environment variable.
  • Aura will now pause before post-build installation if the package database lock exists. This means you can run multiple instances of Aura and avoid crashes.

  • Serbian translation added. Thank you, Filip Brcic!
  • Fixed bug that was breaking aura -Ss.

  • Changed --save and --restore to -B and -Br. --save is now just an alias for -B, but --restore must be used with -B.
  • New option -Bc for removing old unneeded package states.
  • -Br output is now sorted better and makes more sense.
  • Bash Parser can now properly parse if blocks, meaning packages that have conditional dependencies based on architecutre will now build properly.
  • API Change: Aura.General is now Aura.Core
  • Dep Change: haskell-url no longer needed.

  • Added message to --save.

  • Bash parser completely rewritten.
  • Bug fixes (thanks to the new parser)

  • New option --devel. Rebuilds all devel packages installed.
  • Italian translation added! Thank you Bob Valantin!
  • Support for powerpill added. It will be used if installed, unless the PACMAN variable is specifically set to something different.
  • Aura can now handle PKGBUILDs that produce multiple .pkg.tar files.
  • Bug fixes

  • New --save and --restore options.
  • New option -Ak for showing PKGBUILD diffs when upgrading.
  • New option --aurignore for ignoring AUR packages.
  • Aura now reads color.conf.
  • Massive breaking API changes everywhere.
  • Aura now runs on the Aura Monad.
  • Code is quite cleaner now.

  • Bash completions added.
  • zsh completions added.
  • Changed --conf to --viewconf
  • Fixed bug involving “symlink” Haskell error.

  • Moved certain general functions to Aura.Utils
  • Moved -L, -O, -A functions out of aura.hs.
  • --hotedit functionality altered (fix).
  • The license message is now more badass.

  • New libraries: Aura.Time, Aura.State
  • Moved -C functionality to Aura.C
  • New secret option you don’t get to find out about until 1.1
  • Fixed manually alignment stupidity with -Li.
  • Bug fixes

  • New libraries: ColourDiff, Data.Algorithm.Diff, Aura.Pkgbuilds
  • Aura.AuraLib split into Aura.General, Aura.Build, Aura.Dependencies
  • New secret option you don’t get to find out about until 1.1

  • Fixed bug where packages with + in their name couldn’t be searched or built.
  • -As now allows multi-word searches, as it always should have.
  • pacman-color integration is more complete. Still does not read the color.conf directly.

  • Added French translation. Thanks to Ma Jiehong!
  • Added Russian translation. Thanks to Kyrylo Silin!
  • Fixed bug where packages with dots in their name wouldn’t build.

  • Moved haskell dependencies out of makedepends field and into depends field in PKGBUILD. Makedepends can usually be ignored after building, but haskell packages are a pain to rebuild and reregister at every build. It’s more realistic to just keep them installed. This is what other haskell packages in the AUR do as well.
  • Fixed pacman-color issues.

  • Added --auradebug option.

  • Compatibility with AUR 2.0 added.
  • Portuguese translation added. Thanks to Henry “Ingvij” Kupty!
  • Support for pacman-color added. Run sudo with -E a la: sudo -E aura -Ayu
  • Fixed backslash parsing bug in Bash.

  • Fixed parsing bug in Bash. If one package fell victim, a whole -Au session would fail.

  • Added License info to source files.
  • Fixed virtual package recognition bug.
  • Altered version conflict error message.
  • Fixed bug in Bash parser that would occasionally break parsing.

  • Bug fixes.
  • Extended the Bash parser. PKGBUILDs that had bash variables in their dependency arrays will now be parsed correctly.

  • German translation (use with –german). Thanks to Lukas Niederbremer!
  • Spanish translation (use with –spanish) Thanks to Alejandro Gómez!
  • Replaced regex-posix with regex-pcre.
  • -As now highlights properly.
  • Moved a number of modules to Aura/

  • Fixed -V message in terminals other than urxvt.
  • New haskell-ansi-terminal library to do this.

  • Internet access moved to Network.Curl library.

  • Bash.hs library created to help with PKGBUILD parsing. Can currently handle string expansions a la::

    “this-is-{awesome,neat}” => [“this-is-awesome”,“this-is-neat”]

  • Dependency determining speed up.
  • Added AUR URL to -Ai.

  • Swedish translation. Thanks to Fredrik Haikarainen!

  • -Ai and -As!

  • -Au is about 20 times faster.


  • Polish translation. Thanks to Chris “Kwpolska” Warrick!
  • Croatian translation. Thanks to Denis Kasak!

  • New -O operation for dealing with orphan packages.
  • A man page!

  • Help message now supports multiple languages.
  • Broke “no overlapping options” convention.
  • -Cz is now -Cb.
  • New option -Ad. Lists all dependencies of an AUR package. This is to aid pre-building research. This option shows information you can’t get from looking at PKGBUILDS!

  • New option --conf. Lets you quickly view your pacman.conf.

  • --log is now -L.
  • New option -Ls. Search the log file via a regex.
  • New option -Li. Reports information on a given package that has had any appearance in the log file.

  • --hotedit option added.
  • Shell library added.

  • Aura passes proper exit codes to the shell upon completion.