presentation-nix-flakes/sigma.md
2025-03-13 18:31:53 +01:00

1.6 KiB

marp
true

NixOS

Build your own ISO image from flake

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 - pro všechny možnosti konfigurace skriptů
  • https://nixos.wiki/wiki/Nix-writers - osekaná wiki

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!")
}
''


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
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
}