1
2
3
4
5
6
7
8
9
10
11
12
|
---
date: 2016-06-01
title: NixOS introduction
---
[NixOS](https://nixos.org), "The purely functional Linux distribution", takes a very innovative approach to system configuration.<!--more--> In classical distributions, configuration files are scattered around `/etc` with a different syntax each, and once you built your dream server configuration, you are afraid of forgetting something by starting over. NixOS solves this by a `configuration.nix` file that defines your complete system. Using this config, it is possible to manage a machine easily: You define the packages you need, the system services to start, or the user accounts to exist declaratively.
The [NixOS options](https://nixos.org/nixos/options.html) are written in the Nix language. For most software - MySQL, PHP, KDE, Kodi, … - there already exists a module. Sometimes though, you need to write your own or even need to create your own package. Fortunately, this is rather easy. The [Nix package collection](https://github.com/NixOS/nixpkgs) needs to be cloned, there you add your package, submit a PR and are that's it.
NixOS is very reliable: If you want to, you can roll back the whole system with its configuration to an earlier version. Like Gentoo, NixOS has switches and knobs to turn a package's features on or off. The "staging" channel is not as up-to-date and extensive as Arch Linux' package collection, but still fairly cutting-edge.
If you want to know more, check out the homepage and the [manual](https://nixos.org/nixos/manual/index.html).
|