1--- 2title: Introduction 3author: Frederik Rietdijk 4date: 2015-11-25 5--- 6 7# Introduction 8 9The Nix Packages collection (Nixpkgs) is a set of thousands of packages for the 10[Nix package manager](http://nixos.org/nix/), released under a 11[permissive MIT/X11 license](https://github.com/NixOS/nixpkgs/blob/master/COPYING). 12Packages are available for several platforms, and can be used with the Nix 13package manager on most GNU/Linux distributions as well as NixOS. 14 15This manual primarily describes how to write packages for the Nix Packages collection 16(Nixpkgs). Thus it’s mainly for packagers and developers who want to add packages to 17Nixpkgs. If you like to learn more about the Nix package manager and the Nix 18expression language, then you are kindly referred to the [Nix manual](http://nixos.org/nix/manual/). 19 20## Overview of Nixpkgs 21 22Nix expressions describe how to build packages from source and are collected in 23the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the 24collection are Nix expressions for 25[NixOS modules](http://nixos.org/nixos/manual/index.html#sec-writing-modules). 26With these expressions the Nix package manager can build binary packages. 27 28Packages, including the Nix packages collection, are distributed through 29[channels](http://nixos.org/nix/manual/#sec-channels). The collection is 30distributed for users of Nix on non-NixOS distributions through the channel 31`nixpkgs`. Users of NixOS generally use one of the `nixos-*` channels, e.g. 32`nixos-16.03`, which includes all packages and modules for the stable NixOS 3316.03. The purpose of stable NixOS releases are generally only given 34security updates. More up to date packages and modules are available via the 35`nixos-unstable` channel. 36 37Both `nixos-unstable` and `nixpkgs` follow the `master` branch of the Nixpkgs 38repository, although both do lag the `master` branch by generally 39[a couple of days](http://howoldis.herokuapp.com/). Updates to a channel are 40distributed as soon as all tests for that channel pass, e.g. 41[this table](http://hydra.nixos.org/job/nixpkgs/trunk/unstable#tabs-constituents) 42shows the status of tests for the `nixpkgs` channel. 43 44The tests are conducted by a cluster called [Hydra](http://nixos.org/hydra/), 45which also builds binary packages from the Nix expressions in Nixpkgs for 46`x86_64-linux`, `i686-linux` and `x86_64-darwin`. 47The binaries are made available via a [binary cache](https://cache.nixos.org). 48 49The current Nix expressions of the channels are available in the 50[`nixpkgs-channels`](https://github.com/NixOS/nixpkgs-channels) repository, 51which has branches corresponding to the available channels.