Preface
The Nix Packages collection (Nixpkgs) is a set of thousands of packages for the Nix package manager, released under a permissive MIT license. Packages are available for several platforms, and can be used with the Nix package manager on most GNU/Linux distributions as well as NixOS.
This document is the user reference manual for Nixpkgs. It describes entire public interface of Nixpkgs in a concise and orderly manner, and all relevant behaviors, with examples and cross-references.
To discover other kinds of documentation:
- nix.dev: Tutorials and guides for getting things done with Nix
- NixOS Option Search and reference documentation
- Nixpkgs Package Search
- NixOS manual: Reference documentation for the NixOS Linux distribution
- CONTRIBUTING.md
: Contributing to Nixpkgs, including this manual
Overview of Nixpkgs
Nix expressions describe how to build packages from source and are collected in the nixpkgs repository. Also included in the collection are Nix expressions for NixOS modules. With these expressions the Nix package manager can build binary packages.
Packages, including the Nix packages collection, are distributed through
channels. The collection is
distributed for users of Nix on non-NixOS distributions through the channel
nixpkgs-unstable
. Users of NixOS generally use one of the nixos-*
channels,
e.g. nixos-22.11
, which includes all packages and modules for the stable NixOS
22.11. Stable NixOS releases are generally only given
security updates. More up to date packages and modules are available via the
nixos-unstable
channel.
Both nixos-unstable
and nixpkgs-unstable
follow the master
branch of the
nixpkgs repository, although both do lag the master
branch by generally
a couple of days. Updates to a channel are
distributed as soon as all tests for that channel pass, e.g.
this table
shows the status of tests for the nixpkgs-unstable
channel.
The tests are conducted by a cluster called Hydra,
which also builds binary packages from the Nix expressions in Nixpkgs for
x86_64-linux
, i686-linux
and x86_64-darwin
.
The binaries are made available via a binary cache.
The current Nix expressions of the channels are available in the
nixpkgs repository in branches
that correspond to the channel names (e.g. nixos-22.11-small
).