Merge presentation
This commit is contained in:
parent
9fa62d725f
commit
e6e4ccc0bb
123
prezentace.md
123
prezentace.md
@ -25,12 +25,18 @@ footer: "Albert Vala, Filip Kohout, Nix flakes & Nix command"
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
# Nix flakes & Nix command
|
# Nix flakes & Nix command
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Nix Command
|
# Nix Command
|
||||||
|
|
||||||
* Nove nix cli
|
* Nove nix cli
|
||||||
* Flake support
|
* Flake support
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Porovnani
|
# Porovnani
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
nix-shell -p cowsay #Stare
|
nix-shell -p cowsay #Stare
|
||||||
nix shell nixpkgs#cowsay #Nove
|
nix shell nixpkgs#cowsay #Nove
|
||||||
@ -38,30 +44,43 @@ nix run nixpkgs#cowsay #Nove
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Commandy
|
# Commandy
|
||||||
|Command|Na|
|
|
||||||
|---|---|
|
| Command | Na |
|
||||||
|flake new| Vytvoreni flaky z template
|
| ------------ | ---------------------------------- |
|
||||||
|develop| Build environment shell
|
| flake new | Vytvoreni flaky z template |
|
||||||
|shell| temp shell s nejakym programem
|
| develop | Build environment shell |
|
||||||
|config check| Check configu na potencialni chyby
|
| shell | temp shell s nejakym programem |
|
||||||
|run| Spusti output z flaky
|
| config check | Check configu na potencialni chyby |
|
||||||
|
| run | Spusti output z flaky |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Flakes
|
# Flakes
|
||||||
## Proc?
|
|
||||||
|
* ## Proc?
|
||||||
|
|
||||||
* Lockfiles.
|
* Lockfiles.
|
||||||
* Flake inputs
|
* Flake inputs
|
||||||
## Na co?
|
|
||||||
- Cokoliv.
|
* ## Na co?
|
||||||
|
|
||||||
|
* Cokoliv.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Jak pouzit flakes na system configuraci?
|
# Jak pouzit flakes na system configuraci?
|
||||||
|
|
||||||
* Flake je jen cast zbytek je v normalnich nix filech
|
* Flake je jen cast zbytek je v normalnich nix filech
|
||||||
* Zbytek konfigurace bere inputy z flaky.
|
* 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
|
# Flake example
|
||||||
```
|
|
||||||
|
```nix
|
||||||
{
|
{
|
||||||
description = "NixOS configuration";
|
description = "NixOS configuration";
|
||||||
inputs = {
|
inputs = {
|
||||||
@ -94,8 +113,10 @@ nix run nixpkgs#cowsay #Nove
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
```
|
|
||||||
|
```nix
|
||||||
{
|
{
|
||||||
zen-browser,
|
zen-browser,
|
||||||
config,
|
config,
|
||||||
@ -115,14 +136,86 @@ nix run nixpkgs#cowsay #Nove
|
|||||||
programs.home-manager.enable = true;
|
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
|
nixos-rebuild --flake
|
||||||
nh os switch
|
nh os switch
|
||||||
```
|
```
|
||||||
```
|
|
||||||
|
```shell
|
||||||
nix build /etc/nixos#nixosConfigurations.nixos.config.system.build.toplevel \
|
nix build /etc/nixos#nixosConfigurations.nixos.config.system.build.toplevel \
|
||||||
&& ./result/bin/switch-to-configuration switch
|
&& ./result/bin/switch-to-configuration switch
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 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!")
|
||||||
|
''
|
||||||
|
|
||||||
|
```
|
||||||
|
|||||||
81
sigma.md
81
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
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user