NixOS je nezávislá Linuxová distribuce, která zásadně mění způsob, jakým je operační systém spravován, konfigurován a aktualizován. Na rozdíl od tradičních distribucí (jako je Ubuntu, Debian nebo Arch Linux) je NixOS postaven na deklarativním a funkcionálním modelu správy systému.
Celý operační systém – včetně jádra, ovladačů, systémových služeb, uživatelských účtů a nainstalovaných aplikací – je definován v jediném konfiguračním souboru. Srdcem celého systému je balíčkovací manažer Nix.
NixOS stojí na třech základních principech, které z něj dělají unikátní nástroj pro vývojáře, systémové administrátory a nadšence do DevOps:
V běžném Linuxu konfigurujete systém imperativně: zadáváte příkazy jako `apt install nginx`, ručně upravujete soubory v `/etc` a spouštíte služby přes `systemctl`. V NixOS napíšete požadovaný stav systému do souboru `/etc/nixos/configuration.nix` (pomocí programovacího jazyka Nix) a systém se podle toho sám sestaví.
Příklad konfigurace (zapnutí SSH a instalace balíčků):
{ config, pkgs, ... }:
{
boot.loader.systemd-boot.enable = true;
networking.hostName = "nix-server";
services.openssh.enable = true;
environment.systemPackages = with pkgs; [
vim
git
htop
];
users.users.anna = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Povolení sudo
};
}
V NixOS neexistují standardní adresáře jako `/bin`, `/sbin`, `/lib` nebo `/usr/bin` plné sdílených knihoven. Všechny balíčky jsou uloženy v izolovaných adresářích uvnitř Nix store (adresář `/nix/store`).
Každá položka v Nix store má unikátní název začínající kryptografickým hashem (např. `/nix/store/h323ms…-git-2.40.0/`). Tento hash se počítá ze všech vstupů, které byly použity k sestavení balíčku (zdrojový kód, verze překladače, závislosti). Díky tomu je vyloučeno tzv. „závislostní peklo“ (Dependency Hell) – různé aplikace mohou bezproblémově používat různé verze stejné knihovny.
Když změníte konfiguraci a aplikujete ji příkazem `nixos-rebuild switch`, NixOS vytvoří novou generaci systému. Původní generace ale zůstává nedotčená.
Moderní ekosystém NixOS se opírá o dva populární komunitní nástroje:
Související články:
Tagy: linux distribuce nixos nix devops configuration_management immutability