Add flakes and nixos stuff

This commit is contained in:
Pedro Rey Anca 2025-12-15 21:39:15 +01:00
parent 9c4a775738
commit 1d48a2a77d
Signed by: peprolinbot
GPG key ID: 053EA6E00116533A

View file

@ -409,9 +409,104 @@ in "${pkgs.hello}"
Flakes
===
- Experimentales
- Pero no como piensas
- Simplemente un **_wrapper_** para otras configuraciones de Nix
- `flake.nix` `flake.lock`
```nix +line_numbers {all|2-6|6-12}
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
};
outputs = { self, nixpkgs, ... }@inputs: {
nixosConfigurations.my-nixos = nixpkgs.lib.nixosSystem {
modules = [
./configuration.nix
];
};
};
}
```
<!-- speaker_note: Comentar el parámetro especial self -->
<!-- end_slide -->
Configurar NixOS
===
`/etc/nixos/configuration.nix`
```nix +line_numbers {all|10|12|all}
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
# ......
nix.settings.experimental-features = [ "nix-command" "flakes" ];
environment.systemPackages = with pkgs; [
git
vim
wget
];
environment.variables.EDITOR = "vim";
# ......
}
```
<!-- end_slide -->
Configurar NixOS con Flakes
===
`/etc/nixos/flake.nix`
```nix +line_numbers {all|11-12|all}
{
description = "A simple NixOS flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
};
outputs = { self, nixpkgs, ... }@inputs: {
nixosConfigurations.my-nixos = nixpkgs.lib.nixosSystem {
modules = [
# Importamos lo que teníamos antes!
./configuration.nix
];
};
};
}
```
<!-- speaker_note: Hablar del flake.lock que crea esto -->
<!-- end_slide -->
<!-- jump_to_middle -->
Vamos a probar algunas cosas 🙃
===
<!-- end_slide -->
Tips & tricks
===
- Si usas Git, Nix ignora todos los archivos no trackeados.
- `sudo nix-collect-garbage --delete-old`
- `sudo nix-store --optimise`
```nix
{
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
nix.settings.auto-optimise-store = true;
}
```
<!-- end_slide -->
¿Preguntas?
===