Merge presentation
This commit is contained in:
parent
9fa62d725f
commit
e6e4ccc0bb
127
prezentace.md
127
prezentace.md
@ -25,12 +25,18 @@ footer: "Albert Vala, Filip Kohout, Nix flakes & Nix command"
|
||||
</style>
|
||||
|
||||
# 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
|
||||
```
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 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