{
  "name": "GNU Guix commands for a reproducible research environment",
  "description": "Compares the Guix commands used to declare, record and rebuild a research software environment, what each produces, and the manual page it is documented on; compiled from the official Guix manual (version 1.5.0).",
  "page": "https://casrai.org/guides/gnu-guix",
  "publisher": "CASRAI",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "dateModified": "2026-11-15T02:03:41Z",
  "temporalCoverage": "2026",
  "spatialCoverage": null,
  "columns": [
    {
      "name": "Command",
      "unit": "",
      "description": ""
    },
    {
      "name": "Purpose",
      "unit": "",
      "description": ""
    },
    {
      "name": "Output or artifact",
      "unit": "",
      "description": ""
    },
    {
      "name": "Documented in",
      "unit": "",
      "description": ""
    }
  ],
  "rows": [
    {
      "Command": "guix shell",
      "Purpose": "Create a one-off environment without changing the user profile",
      "Output or artifact": "A shell with GUIX_ENVIRONMENT set",
      "Documented in": "Invoking guix shell"
    },
    {
      "Command": "guix shell --container",
      "Purpose": "Run the environment in a container (no network, shares only the working directory by default)",
      "Output or artifact": "Isolated container shell",
      "Documented in": "Invoking guix shell"
    },
    {
      "Command": "guix package --export-manifest",
      "Purpose": "Write a manifest from an existing profile (approximation)",
      "Output or artifact": "A manifest file",
      "Documented in": "Invoking guix package"
    },
    {
      "Command": "guix describe -f channels",
      "Purpose": "Show the channels and commits in use in saved-file form",
      "Output or artifact": "A channel list (channels.scm)",
      "Documented in": "Invoking guix describe"
    },
    {
      "Command": "guix pull -C channels.scm",
      "Purpose": "Instantiate the exact Guix revision recorded in a channels file",
      "Output or artifact": "A Guix at the recorded commits",
      "Documented in": "Invoking guix describe"
    },
    {
      "Command": "guix time-machine -C channels.scm",
      "Purpose": "Run a command with another Guix revision to reproduce a computation",
      "Output or artifact": "Command output from that revision",
      "Documented in": "Invoking guix time-machine"
    },
    {
      "Command": "guix archive --authorize",
      "Purpose": "Authorize a substitute server key so pre-built binaries can be used",
      "Output or artifact": "Authorized substitute key",
      "Documented in": "Binary Installation"
    }
  ],
  "sources": [
    {
      "title": "GNU Guix Reference Manual: Invoking guix shell",
      "url": "https://guix.gnu.org/manual/en/html_node/Invoking-guix-shell.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "Invoking guix describe",
      "url": "https://guix.gnu.org/manual/en/html_node/Invoking-guix-describe.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "Invoking guix time-machine",
      "url": "https://guix.gnu.org/manual/en/html_node/Invoking-guix-time_002dmachine.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "Invoking guix package",
      "url": "https://guix.gnu.org/manual/en/html_node/Invoking-guix-package.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "Binary Installation",
      "url": "https://guix.gnu.org/manual/en/html_node/Binary-Installation.html",
      "accessed": "2026-11-14"
    }
  ]
}