Arch Linux aura

ID

aura

Home page

https://github.com/fosskers/aura

Version requirement

>= 4

Platforms

🅱️ BSD · 🐧 Linux · ⨂ Unix

Operations

installed · outdated · orphans · search · install · upgrade · upgrade_all · remove · sync · cleanup · doctor

purl types

pkg:alpm · pkg:aura

CLI name

aura

Every call

aura --noconfirm <command>

Issues and PRs

📦 manager: pacman-based

Source

meta_package_manager/managers/pacman.py

AUR helper wrapping pacman, driven through the aura binary.

Aura reuses every parser and query of Pacman unchanged, but not its forced arguments and not its outdated(): those are the two places where a v4 aura genuinely differs from the helpers around it.

Note

Every v4 subcommand answers to a long name, a pacman letter and a long pacman flag alike, so aura --query --upgrades and aura -Qu are one command. That is what lets this class inherit Pacman’s operations verbatim rather than restating them against a clap-only vocabulary.

Important

Repository upgrades and AUR upgrades are two commands here, where yay and paru fold both into one --query --upgrades. Aura’s -Qu reads the local ALPM database against the sync databases, so it reports the official repositories alone and an out-of-date AUR package stays invisible to it. The AUR half lives behind --aursync --sysupgrade --dryrun, which reports without acting. outdated() runs both and concatenates them, so mpm reports what an aura -Syu followed by an aura -Au would actually upgrade.

Documentation: Aura manual.

What mpm adds to aura

Through mpm, aura gains:

  • a one-command cleanup --orphans that removes every orphaned dependency at once

  • --extended search, to match against package descriptions

Bigger still, mpm reaches across every manager at once: mpm installed and mpm outdated cover aura alongside pacaur, pacman, pamac, paru, yay and any other manager you run in one table, mpm upgrade --all updates them together, and mpm sbom exports the whole machine as one bill of materials.

Every mpm command also gains --dry-run and --plan previews, cross-scheme version comparison and purl identifiers. See manager augmentations for how each one is built.

Your aura commands, in mpm

You already know aura: each operation maps one-to-one onto mpm, in an interface shared by every manager.

To…

With aura

With mpm

List what’s installed

pacman --query

mpm --aura installed

List outdated packages

aura --query --upgrades

mpm --aura outdated

Search for a package

pacman --sync --search fire

mpm --aura search fire

Install a package

sudo pacman --color never --sync firefox

mpm install pkg:aura/<pkg>

Upgrade one package

sudo pacman --color never --sync firefox

mpm --aura upgrade <pkg>

Upgrade everything

sudo pacman --color never --sync --refresh --sysupgrade

mpm --aura upgrade --all

Remove a package

sudo pacman --color never --remove firefox

mpm remove pkg:aura/<pkg>

List orphaned dependencies

pacman --color never --query --deps --unrequired

mpm --aura orphans

Clear caches

sudo pacman --color never --sync --clean --clean

mpm --aura cleanup --cache

Run health checks

pacman --color never --database --check

mpm --aura doctor

Prefix any command above with --dry-run to simulate the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Operations

Operation

Supported

Notes

installed

outdated

orphans

search

extended search backfilled by mpm

install

upgrade

upgrade_all

remove

--orphans also drops the package’s orphaned dependencies

sync

cleanup

--orphans sweep backfilled by mpm

doctor

Selecting and configuring aura

Deselect aura for a single run with --no-aura, or persist the choice in your configuration:

[mpm]
aura = false

The arguments and environment variables listed in the box atop this page are forced on every aura call, so runs stay quiet, non-interactive and reproducible: the defaults you would set in CI anyway.

Keep it enabled but tune how mpm drives it with a per-manager override:

[mpm.managers.aura]
timeout = 900

mpm config-template aura prints every overridable attribute as a ready-to-paste block.

Recipes

A few jobs you would otherwise script around aura, one mpm command each:

  • Snapshot and clone a machine: mpm --aura dump aura.toml, then mpm restore aura.toml on the next one.

  • Export a compliance SBOM: mpm --aura sbom (CycloneDX by default, --spdx for SPDX).

  • Gate CI on health: mpm --aura doctor relays Arch Linux aura’s own diagnosis and exits non-zero on trouble.

Privilege escalation

Arch Linux aura runs sudo from inside its own commands: mpm never wraps it, keeps an already-warm credential cache alive for those internal escalations, and warns when a mutating call goes silent on a terminal with a cold cache, since a password prompt may be hiding in the stream.

See privilege escalation for the full policy.

Concurrency

mpm never runs aura at the same time as pacaur, pacman, pamac, paru, pikaur, trizen or yay: they all reach the pacman database (/var/lib/pacman/db.lck), and two of them mutating at once fail to init their transaction. Each mutating operation waits for the previous one, even with a higher --jobs, while managers outside this group keep running in parallel.

Only mutations are held back. The read-only queries (installed, outdated, search) take no backend lock and stay fully concurrent.

Cooldown

State of Arch Linux aura’s release-age gating, from the cooldown support table:

Status: ❌ None (Arch AUR helper; could take paru’s probe)

A cooldown only pays off where a compromised release can be withdrawn while the clock runs, and can only be emulated where the registry dates its releases. From the retraction table:

  • Registry: AUR

  • Retraction: None at the version level: an AUR package is a git repository with no per-version artifact to withdraw, so remediation is a maintainer push or deletion of the whole package

  • Publish date: ✅ server-set LastModified, the push timestamp mpm’s yay overlay and paru probe gate on. Git commit dates are client-set (GIT_COMMITTER_DATE), forgeable, and never consulted

With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --cooldown best-effort opts back in.

Version probe

The version is probed by running:

$ aura --version
aura 4.2.0

and extracted with:

r"aura\s+(?P<version>\S+)"

Reference traces

Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know Arch Linux aura well and a transcript below looks wrong, or a newer release changed its output format, report it.

$ aura --noconfirm --query --upgrades
kmscon-terminfo 10.0.2-2 -> 10.0.3-1
python-platformdirs 4.11.5-1 -> 4.11.7-1
$ aura --noconfirm --aursync --sysupgrade --dryrun
 yay-bin :: 12.6.0-1 -> 13.0.1-1

Feed any of these through mpm and the raw output becomes one uniform table, the same shape for every manager: filter it, project columns, or export it (mpm --aura installed --output json, or csv, toml, yaml), each package carrying a purl and a version comparable across managers.

Changelog

  • 8.0.0.dev0 (unreleased)

    • Add aura AUR helper, reporting repository and AUR upgrades together.