diff --git a/prezentace.md b/prezentace.md index 67671b5..0dea0c6 100644 --- a/prezentace.md +++ b/prezentace.md @@ -25,12 +25,18 @@ footer: "Albert Vala, Filip Kohout, Nix flakes & Nix command" # Nix flakes & Nix command + --- + # Nix Command + * Nove nix cli * Flake support + --- + # Porovnani + ```shell nix-shell -p cowsay #Stare nix shell nixpkgs#cowsay #Nove @@ -38,30 +44,43 @@ nix run nixpkgs#cowsay #Nove ``` --- + # Commandy -|Command|Na| -|---|---| -|flake new| Vytvoreni flaky z template -|develop| Build environment shell -|shell| temp shell s nejakym programem -|config check| Check configu na potencialni chyby -|run| Spusti output z flaky + +| Command | Na | +| ------------ | ---------------------------------- | +| flake new | Vytvoreni flaky z template | +| develop | Build environment shell | +| shell | temp shell s nejakym programem | +| config check | Check configu na potencialni chyby | +| run | Spusti output z flaky | --- + # Flakes -## Proc? + +* ## Proc? + * Lockfiles. * Flake inputs -## Na co? -- Cokoliv. + +* ## Na co? + +* Cokoliv. + --- + # Jak pouzit flakes na system configuraci? + * Flake je jen cast zbytek je v normalnich nix filech * Zbytek konfigurace bere inputy z flaky. -* Neprijdeme o nic jen mame lock file a moznost flake jako inputu +* Neprijdeme o nic jen mame lock file a moznost flake jako inputu + --- + # Flake example -``` + +```nix { description = "NixOS configuration"; inputs = { @@ -94,8 +113,10 @@ nix run nixpkgs#cowsay #Nove }; } ``` + --- -``` + +```nix { zen-browser, config, @@ -115,14 +136,86 @@ nix run nixpkgs#cowsay #Nove programs.home-manager.enable = true; } ``` + --- -# nixos-rebuild -* Je to jen bash script + +# 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"; +} ``` + +--- + +# Nixos-rebuild + +* Je to jen bash script + +```shell nixos-rebuild --flake nh os switch ``` -``` + +```shell nix build /etc/nixos#nixosConfigurations.nixos.config.system.build.toplevel \ && ./result/bin/switch-to-configuration switch -``` \ No newline at end of file +``` + +--- + +# Nix writers + +* Jednoduchý způsob přidávání skriptů v různých programovacích jazycích do systému ve flake konfiguraci +* 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!") +'' + +``` diff --git a/sigma.md b/sigma.md index e9a0a78..e69de29 100644 --- a/sigma.md +++ b/sigma.md @@ -1,81 +0,0 @@ ---- -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 -} -``` - ---- -