imperative v. declarative

This commit is contained in:
Ryan Schanzenbacher 2023-09-29 09:46:45 -04:00
parent ec6680a380
commit e87eb9419a
Signed by: ryan77627
GPG key ID: 81B0E222A3E2308E

View file

@ -35,6 +35,15 @@ While we will try to talk about generalities of declarative operating system par
--- ---
# Declarative v. Imperative
- Most distros are imperative
- You give them commands to get a result
- Nix and Guix are declarative
- You define a wanted end state and Guix/Nix gets you there its way
---
# Reproducible # Reproducible
- Systems have a given configuration - Systems have a given configuration
@ -76,6 +85,7 @@ While we will try to talk about generalities of declarative operating system par
- Nix package manager (nix) - Nix package manager (nix)
- Nix language - Nix language
- Systemd - Systemd
- Wrote like an entire research paper on the theory behind Nix
![bg left 40%](nix.png) ![bg left 40%](nix.png)
@ -162,6 +172,7 @@ $ readlink /home/tylerm/.guix-home/profile/bin/gcc
- Package manager takes in user and system configuration - Package manager takes in user and system configuration
- Downloads needed data into store - Downloads needed data into store
- Prebuilt, signed binaries are called "substitutes"
- Build any needed packages - Build any needed packages
- Symlinks the user and system profiles - Symlinks the user and system profiles
@ -173,3 +184,9 @@ $ readlink /home/tylerm/.guix-home/profile/bin/gcc
- Uses contained environment - Uses contained environment
- `guix shell <package>` - `guix shell <package>`
- `nix shell -p <package>` - `nix shell -p <package>`
---
## test
Test content in a slide