GNU Guix¶
GNU Guix, GNU’s functional package manager.
Note
All operations target the current user’s default profile. Declarative
system configuration (Guix System config.scm) is not covered.
Guix is a rolling release with no upstream semver to pin against:
guix --version reports a release tag, a git describe string, or the
bare commit hash of an in-tree checkout. No requirement floor is
enforced, since any working guix will do.
Warning
search evaluates every package definition to match the query, so its
cost scales with the size of the package set, not the result count: tens
of seconds on a freshly pulled Guix, longer still from an in-tree
development checkout. The call is bounded by mpm --timeout (120s by
default), past which it is killed with no results returned, so a slow
search can look like a hang.
Home page: https://guix.gnu.org
Platforms¶
🐧 Linux
Operations¶
Operation |
Supported |
Notes |
|---|---|---|
|
✓ |
|
|
✓ |
|
|
✓ |
exact and extended search backfilled by |
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
Ecosystem¶
Accepted purl types:
pkg:guix
Usage¶
$ mpm --guix installed
$ mpm --guix search "query"
$ mpm --guix upgrade --all
$ mpm install pkg:guix/hello
$ mpm --dry-run --guix upgrade --all
Every example above accepts --dry-run, which simulates the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.
Deselect the manager for a single run with --no-guix, disable it from your configuration, or tune its invocation attributes with per-manager overrides.
Command line¶
CLI names, in lookup order:
guix
The version is probed by running:
$ guix --version
guix (GNU Guix) 1.4.0
and extracted with the first of these regular expressions to match:
r"guix \(GNU Guix\) (?P<version>\d[\w.\-+]*)"
r"guix \(GNU Guix\) (?P<version>[0-9a-f]{7,40})\b"
Privilege escalation¶
mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.
See privilege escalation for the full policy.
Cooldown¶
State of GNU Guix’s release-age gating, from the cooldown support table:
Status: ❌ None
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.
Reference traces¶
Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know GNU Guix well and a transcript below looks wrong, or a newer release changed its output format, report it.
$ guix package --list-installed
hello 2.10 out /gnu/store/k74skdjjb9c9zqjv9nmgd6zi92wpf3q0-hello-2.10
python 3.10.7 out /gnu/store/2n3g8n7d5xkp6h4qz1v8m0rjc9wf5aby-python-3.10.7
$ guix upgrade --dry-run
The following packages would be upgraded:
hello 2.12.1 → 2.12.3
sed 4.8 → 4.9