--- marp: true --- # NixOS ## Build your own ISO image from flake ```shell nix run github:nix-community/nixos-generators -- -c ./flake.nix --flake '#default' -f vm --disk-size 20480 ``` --- ## Nix writers - Jednoduchý způsob přidávání skriptů v různých programovacích jazycích do systému - Rozdíl oproti klasickému `pkgs.writeShellScriptBin` - [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/writers/scripts.nix) - pro všechny možnosti konfigurace skriptů - [https://nixos.wiki/wiki/Nix-writers](https://nixos.wiki/wiki/Nix-writers) - osekaná wiki --- ```nix pkgs.writers.writeBash "hello-world-bash" {} '' echo "Hello world!" '' pkgs.writers.writePython3 "hello-world-python" {} '' print("Hello world!") '' pkgs.writers.writeRust "hello-world-rust" {} '' fn main() { println!("Hello world!") } '' ``` --- ```nix pkgs.writers.writePython3 "hello-world-python" { libraries = [ pkgs.python3Packages.requests ]; makeWrapperArgs = [ "--prefix", "PATH", ":", "${pkgs.sl}/bin", ]; } '' print("Hello world!") '' ``` --- ## Inputs - `nix flake metadata --json | jq` - zobrazí vstupy - lock aktuální verze - `nix flake update` - aktualizace všech vstupů - `nix flake update [home-manager]` - aktualizace jednoho vstupu - `nix flake show` - zobrazí flake strukturu ```nix inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs-current = "github:nixos/nixpkgs?ref=3058cf84bce1aba7b1820cb24319a171572217ba-dirty } ``` ---