GUIX(1)

πŸ“¦
version 1.5.0 Β· 3 versions
, in alpine 3.24

πŸ¦‹ GUIX(1) β€” the guix shell glow-up guide πŸ¦‹

okay bestie, so this is the manual page for guix shell from GNU Guix, version 1.5.0rc1.47-fc2f5a. it lives in the User Commands section (section 1, obviously), and it's basically the group-chat invite to a whole build environment. let's get into it πŸ’…


✨ NAME ✨

guix β€” manual page for guix shell (GNU Guix) 1.5.0rc1.47-fc2f5a

✨ SYNOPSIS ✨

guix shell [OPTION] PACKAGES... [-- COMMAND...]

✨ DESCRIPTION ✨

Bestie, listen. guix shell builds an environment that includes PACKAGES, and then it either executes COMMAND in that environment or drops you into an interactive shell inside it. it's giving "custom little world, just for you" energy, no cap. 🌈

πŸŽ€ OPTIONS πŸŽ€

  • -D, --development β€” pulls in the development inputs of the next package. yes, "next" β€” the flag is doing a little lookahead, icon behavior honestly.
  • -f, --file=FILE β€” adds to the environment the package that FILE evaluates to.
  • -q β€” inhibits loading of guix.scm and manifest.scm. short flag, big "not now" energy.
  • --rebuild-cache β€” rebuilds the cached environment, if there is one.
  • --export-manifest β€” prints a manifest for the options you gave. it's like receipts, but for your environment.
  • -F, --emulate-fhs β€” for containers: emulate the Filesystem Hierarchy Standard (FHS).
  • -e, --expression=EXPR β€” creates an environment for the package that EXPR evaluates to.
  • -m, --manifest=FILE β€” creates an environment using the manifest from FILE.
  • -p, --profile=PATH β€” creates an environment from the profile at PATH.
  • --check β€” checks if the shell clobbers environment variables. lowkey a vibe check for your env vars πŸ‘€
  • --pure β€” unsets existing environment variables. clean slate, main character energy.
  • -E, --preserve=REGEXP β€” preserves environment variables that match REGEXP. keeping the ones that matter 🫢
  • --search-paths β€” displays the needed environment variable definitions.
  • -r, --root=FILE β€” makes FILE a symlink to the result, and registers it as a garbage collector root. it's a permanent bookmark, fr fr.
  • -C, --container β€” runs the command inside an isolated container 🫧
  • -N, --network β€” lets containers access the network.
  • -P, --link-profile β€” links the environment profile to ~/.guix-profile inside an isolated container.
  • -W, --nesting β€” makes Guix available inside the container. guix within guix, it's giving inception πŸ’€
  • -u, --user=USER β€” instead of copying the name and home of the current user into an isolated container, uses the name USER with home directory /home/USER.
  • --no-cwd β€” does not share the current working directory with an isolated container.
  • --writable-root β€” makes the container's root file system writable. handle with care, bestie.
  • --share=SPEC β€” for containers: shares a writable host file system according to SPEC.
  • --expose=SPEC β€” for containers: exposes a read-only host file system according to SPEC.
  • -S, --symlink=SPEC β€” for containers: adds symlinks to the profile according to SPEC, e.g. "/usr/bin/env=bin/env". cute little shortcut portals ✨
  • -v, --verbosity=LEVEL β€” uses the given verbosity LEVEL.
  • --bootstrap β€” uses bootstrap binaries to build the environment.
  • -L, --load-path=DIR β€” prepends DIR to the package module search path.
  • -K, --keep-failed β€” keeps the build tree of failed builds. forensic queen behavior πŸ”
  • -k, --keep-going β€” keeps going when some of the derivations fail. resilience, honestly.
  • -n, --dry-run β€” does not build the derivations. just looking, not touching πŸ™ˆ
  • --fallback β€” falls back to building when the substituter fails.
  • --no-substitutes β€” builds instead of resorting to pre-built substitutes.
  • --substitute-urls=URLS β€” fetches substitutes from URLS if they are authorized.
  • --no-grafts β€” does not graft packages.
  • --no-offload β€” does not attempt to offload builds.
  • --max-silent-time=SECONDS β€” marks the build as failed after SECONDS of silence. the "say something challenge" 😭
  • --timeout=SECONDS β€” marks the build as failed after SECONDS of activity.
  • --rounds=N β€” builds N times in a row to detect non-determinism. consistency check, we love to see it.
  • -c, --cores=N β€” allows the use of up to N CPU cores for the build.
  • -M, --max-jobs=N β€” allows at most N build jobs.
  • --debug=LEVEL β€” produces debugging output at LEVEL.
  • --list-systems β€” lists available systems.
  • -s, --system=SYSTEM β€” attempts to build for SYSTEM β€” e.g., "i686-linux".
  • --help-transform β€” lists package transformation options that are not shown here. yes there's more, iykyk.
  • -h, --help β€” displays this help and exits.
  • -V, --version β€” displays version information and exits.

πŸ’€ REPORTING BUGS πŸ’€

Found a bug? Bestie, report it, don't just suffer in silence:


Copyright Β© 2025 the Guix authors. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. like, none. zero. don't come for them if it breaks, that's the deal πŸ’…

🌸 SEE ALSO 🌸

The full documentation for guix is maintained as a Texinfo manual. If the info and guix programs are properly installed at your site, then this command:

info guix

should give you access to the complete manual. go read it, it's iconic πŸŽ€


and that's the whole page, bestie 🫢 β€” this was GUIX(1), brought to you by GNU, dated January 2026, and we are obsessed. βœ¨πŸ’–

πŸ“¦ where this page comes from