AppImage Manager¶
- ID
am- Home page
- Version requirement
>= 10.4
- Platforms
š§Ā Linux (except Windows Subsystem for Linux v1, Windows Subsystem for Linux v2)
- Operations
installedĀ Ā·upgradeĀ Ā·upgrade_allĀ Ā·removeĀ Ā·cleanup- purl types
pkg:am- CLI name
am- Forced environment
NO_COLOR=1
- Issues and PRs
- Source
AppImage manager, covering the applications of its own catalog.
Note
am and appman are the same script under two names, and only this one is
wrapped. AppManās repository holds no implementation at all, just a stub
that replaces itself with this script, which then reads its own path to
decide whether to run system-wide or under the userās home. Wrapping both
would double-count: am -fi renders AppManās applications in a second
table of its own whenever AppMan is configured, so they are already
reported here. See Unsupported managers for the recorded decision.
Caution
The listingās column count depends on its contents: a fifth column appears between the name and the version whenever an application resolves to a third-party catalog. The version is therefore located by reading the header rather than by counting from the left, which is also what lets a listing carrying two tables be parsed in one pass.
Note
No install. am refuses to be run under sudo and escalates on its own
instead, priming the credential cache before it installs anything, so an
install blocks on a password prompt that no flag of its own can answer.
Removal is unaffected, -R needing no confirmation and no escalation mpm
has to arrange.
No outdated either: nothing reports a remote version without installing
it, and the catalog carries no versions at all. Its maintainer declined to
publish a machine-readable feed, so this is settled rather than pending, and
upgrade --all is unaffected.
No search: results are folded to the terminal width before they are
printed, so a record wraps across lines with no marker to rejoin it, and its
description is unrecoverable once wrapped.
Documentation: AM.
What mpm adds to am¶
mpm reaches across every manager at once, not am alone: mpm installed and mpm outdated cover am alongside every 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 am commands, in mpm¶
You already know am: each operation maps one-to-one onto mpm, in an interface shared by every manager.
To⦠|
With |
With |
|---|---|---|
List whatās installed |
|
|
Upgrade one package |
|
|
Upgrade everything |
|
|
Remove a package |
|
|
Clear caches |
|
|
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 |
|---|---|
|
ā |
|
|
|
|
|
|
|
|
|
ā |
|
ā |
|
ā |
|
|
|
ā |
|
Selecting and configuring am¶
Deselect am for a single run with --no-am, or persist the choice in your configuration:
[mpm]
am = false
The arguments and environment variables listed in the box atop this page are forced on every am 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.am]
timeout = 900
mpm config-template am prints every overridable attribute as a ready-to-paste block.
Recipes¶
A few jobs you would otherwise script around am, one mpm command each:
Snapshot and clone a machine:
mpm --am dump am.toml, thenmpm restore am.tomlon the next one.Export a compliance SBOM:
mpm --am sbom(CycloneDX by default,--spdxfor SPDX).
Privilege escalation¶
AppImage Manager 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.
Cooldown¶
State of AppImage Managerās release-age gating, from the cooldown support table:
Status: ā None
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: Git-manifest indexes
Retraction: Index revert: reverting the manifest, Portfile or derivation commit withdraws the version
Publish date: ā only the commit date, which is client-set and trivially backdated
With --cooldown set, mpm skips this managerās install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.
Version probe¶
The version is probed by running:
$ am --version
10.4
and extracted with:
r"(?m)^(?P<version>\d+(?:\.\d+)+)$"
Reference traces¶
Raw native outputs captured in the manager source: the reference mpmās parsers were written against. If you know AppImage Manager well and a transcript below looks wrong, or a newer release changed its output format, report it.
$ am --version
10.4
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 --am installed --output json, or csv, toml, yaml), each package carrying a purl and a version comparable across managers.
Changelog¶
7.7.0.dev0(unreleased)Add the AM AppImage manager with
installed,upgrade,removeandcleanupsupport. Its listing locates the version by reading the table header, the column count depending on the applications installed. It declares noinstall, which blocks on an escalation prompt, nooutdated, which the catalog cannot answer, and nosearch, whose records are folded to the terminal width.