nix3-bundle(1)

πŸ’… nix3-bundle(1) β€” General Commands Manual, bestie edition

okay so real talk: this page lives in the Nix 3 section of the General Commands Manual, and it's all about nix bundle. Buckle up, she's cute but she's experimental πŸ§ͺ

⚠️ Warning: this program is experimental and its interface is subject to change. No cap. She might switch up on you.

✨ Name ✨

nix bundle β€” bundle an application so that it works outside of the Nix store πŸŽ€


🌸 Synopsis 🌸

nix bundle [option…] installable

πŸ¦‹ Examples πŸ¦‹

  1. Bundle Hello πŸ’–
# nix bundle nixpkgs#hello
# ./hello
Hello, world!
  1. Bundle a specific version of Nix πŸ‘‘
# nix bundle github:NixOS/nix/e3ddffb27e5fc37a209cfd843c6f7f6a9460a8ec
# ./nix --version
nix (Nix) 2.4pre20201215_e3ddffb
  1. Bundle a Hello using a specific bundler 🎁
# nix bundle --bundler github:NixOS/bundlers#toDockerImage nixpkgs#hello
# docker load < hello-2.10.tar.gz
# docker run hello-2.10:latest hello
Hello, world!

πŸ’œ Description πŸ’œ

nix bundle, by default, packs the closure of the installable into a single self-extracting executable. See the bundlers homepage for more details. it's giving "one file, all the vibes" ✨

πŸ“ Note: This command only works on Linux. sorry to the mac girlies 😭

🌈 Flake output attributes 🌈

If no flake output attribute is given, nix bundle tries the following flake output attributes:

  • bundlers.<system>.default

If an attribute name is given, nix bundle tries the following flake output attributes:

  • bundlers.<system>.<name>

πŸŽ€ Bundlers πŸŽ€

A bundler is specified by a flake output attribute named bundlers.<system>.<name>. It looks like this:

bundlers.x86_64-linux = rec {
  identity = drv: drv;

  blender_2_79 = drv: self.packages.x86_64-linux.blender_2_79;

  default = identity;
};

A bundler must be a function that accepts an arbitrary value (typically a derivation or app definition) and returns a derivation. that's the whole vibe check βœ…


✨ OPTIONS ✨

  • --bundler, -B flake-url β€” use a custom bundler instead of the default (github:NixOS/bundlers).
  • --out-link, -o path β€” override the name of the symlink to the build result. it defaults to the base name of the app. πŸ’…

🧚 Common evaluation options 🧚

  • --arg name expr β€” pass the value expr as the argument name to Nix functions.
  • --arg-from-file name path β€” pass the contents of file path as the argument name to Nix functions.
  • --arg-from-stdin name β€” pass the contents of stdin as the argument name to Nix functions.
  • --argstr name string β€” pass the string string as the argument name to Nix functions.
  • --debugger β€” start an interactive environment if evaluation fails. slay, debug mode πŸ›
  • --eval-store store-url β€” the URL of the Nix store to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.
  • --impure β€” allow access to mutable paths and repositories. living dangerously, love that for you πŸ™ˆ
  • --include, -I path β€” add path to search path entries used to resolve lookup paths.

This option may be given multiple times.

Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable.

  • --override-flake original-ref resolved-ref β€” override the flake registries, redirecting original-ref to resolved-ref.
  • --commit-lock-file β€” commit changes to the flake's lock file.
  • --inputs-from flake-url β€” use the inputs of the specified flake as registry entries.
  • --no-registries β€” don't allow lookups in the flake registries.
πŸ’€ DEPRECATED β€” use --no-use-registries instead.
  • --no-update-lock-file β€” do not allow any updates to the flake's lock file.
  • --no-write-lock-file β€” do not write the flake's newly generated lock file.
  • --output-lock-file flake-lock-path β€” write the given lock file instead of flake.lock within the top-level flake.
  • --override-input input-path flake-url β€” override a specific flake input (e.g. dwarffs/nixpkgs). The input path must not be empty. This implies --no-write-lock-file.
  • --recreate-lock-file β€” recreate the flake's lock file from scratch.
πŸ’€ DEPRECATED β€” use nix flake update instead.
  • --reference-lock-file flake-lock-path β€” read the given lock file instead of flake.lock within the top-level flake.
  • --update-input input-path β€” update a specific flake input (ignoring its previous entry in the lock file).
πŸ’€ DEPRECATED β€” use nix flake update instead.
  • --debug β€” set the logging verbosity level to 'debug'.
  • --log-format format β€” set the format of log output; one of raw, internal-json, bar or bar-with-logs.
  • --print-build-logs, -L β€” print full build logs on standard error.
  • --quiet β€” decrease the logging verbosity level. shhh 🀫
  • --verbose, -v β€” increase the logging verbosity level.

⭐ Miscellaneous global options ⭐

  • --help β€” show usage information.
  • --offline β€” disable substituters and consider all previously downloaded files up-to-date.
  • --option name value β€” set the Nix configuration setting name to value (overriding nix.conf).
  • --refresh β€” consider all previously downloaded files out-of-date.
  • --repair β€” during evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
  • --version β€” show version information.

πŸ“ Options that change the interpretation of installables πŸ“

  • --expr expr β€” interpret installables as attribute paths relative to the Nix expression expr.
  • --file, -f file β€” interpret installables as attribute paths relative to the Nix expression stored in file. If file is the character -, then a Nix expression is read from standard input. Implies --impure.
πŸ“ Note: see man nix.conf for overriding configuration settings with command line flags.

and that's the whole page, bestie β€” no crumbs left behind πŸ’–βœ¨

signing off from nix3-bundle(1) in the General Commands Manual πŸ¦‹ periodt. πŸ‘‘

πŸ“¦ where this page comes from