mirror of
https://github.com/NixOS/nix.dev.git
synced 2024-10-18 14:32:43 -04:00
05d79a4203
remove the NixOS example, as the sample has lots of caveats, such as having to rebuild NixOS a second time to make it effective.
1.9 KiB
1.9 KiB
(ref-pinning-nixpkgs)=
Pinning Nixpkgs
Specifying remote Nix expressions, such as the one provided by Nixpkgs, can be done in several ways:
-I
option to most of commands likenix-build
,nix-shell
, etc.$NIX_PATH
environment variable- Using builtins.fetchTarball to fetch a Nix expression at evaluation time
Possible URL
values
-
Local file path.
Using
.
means that nixpkgs is located in the current directory. -
Pinned to a specific commit
https://github.com/NixOS/nixpkgs/archive/eabc38219184cc3e04a974fe31857d8e0eac098d.tar.gz
-
Using the latest channel version, meaning all tests have passed
http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz
Shorthand syntax for
NIX_PATH
and-I
:channel:nixos-22.11`
-
Using the latest channel version, hosted by GitHub
https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz
-
Using the latest commit on the release branch, but not tested yet
https://github.com/NixOS/nixpkgs/archive/release-21.11.tar.gz
Examples
-
$ nix-build -I ~/dev
-
$ nix-build -I nixpkgs=http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz`
-
$ nix-build -I nixpkgs=channel:nixos-22.11`
-
$ NIX_PATH=nixpkgs=http://nixos.org/channels/nixos-22.11/nixexprs.tar.xz nix-build ...`
-
$ NIX_PATH=nixpkgs=channel:nixos-22.11 nix-build ...`
-
In the Nix language:
let pkgs = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-22.11.tar.gz") {}; in pkgs.stdenv.mkDerivation { ... }