Update
This commit is contained in:
parent
1d48a2a77d
commit
a70e52388c
7 changed files with 326 additions and 54 deletions
131
src/slides.md
131
src/slides.md
|
|
@ -29,13 +29,18 @@ La _temida_ curva de aprendizaje de Nix(OS)
|
|||
|
||||
<!-- pause -->
|
||||
|
||||

|
||||

|
||||
|
||||
<!-- end_slide -->
|
||||
|
||||
Nix
|
||||
===
|
||||
|
||||
<!-- column_layout: [2, 3] -->
|
||||
<!-- column: 1 -->
|
||||
```bash +exec
|
||||
nix run nixpkgs#cowsay -- Soy un paquete de Nix
|
||||
```
|
||||
<!-- column: 0 -->
|
||||
- Gestor de paquetes
|
||||
- Declarativo
|
||||
- Reproducible
|
||||
|
|
@ -54,7 +59,9 @@ Nix, el lenguaje
|
|||
===
|
||||
<!-- column_layout: [3, 2] -->
|
||||
<!-- column: 0 -->
|
||||
> Sólo existe por y para Nix, el gestor de paquetes: para describir paquetes y configuraciones, así como sus variantes y composiciones. **No está pensado para casos de uso generales**.
|
||||
> Sólo existe por y para Nix, el gestor de paquetes:
|
||||
> para describir paquetes y configuraciones, así como sus variantes y composiciones.
|
||||
> **No está pensado para casos de uso generales**.
|
||||
|
||||
- Sencillo
|
||||
- Funcional
|
||||
|
|
@ -76,11 +83,23 @@ in
|
|||
```
|
||||
<!-- end_slide -->
|
||||
|
||||
Nixpkgs
|
||||
===
|
||||
- Repositorio de paquetes en Nix (y módulos de NixOS)
|
||||
- Incluye tests, funciones de ayuda, etc.
|
||||
- Compilado y probado con Hydra
|
||||
- Subido a `cache.nixos.org`
|
||||
|
||||

|
||||
[De repology.org](https://repology.org)
|
||||
<!-- end_slide -->
|
||||
|
||||
NixOS
|
||||
===
|
||||
<!-- column_layout: [1, 4] -->
|
||||
<!-- column: 0 -->
|
||||

|
||||
_Logo de NixOS 25.11 "Xantusia"_ por _Yohann Boniface_
|
||||
|
||||
<!-- column: 1 -->
|
||||
- Nix como gestor de paquetes
|
||||
|
|
@ -483,6 +502,88 @@ Configurar NixOS con Flakes
|
|||
|
||||
<!-- end_slide -->
|
||||
|
||||
Anatomía de un modulo
|
||||
===
|
||||
<!-- column_layout: [2, 3] -->
|
||||
<!-- column: 0 -->
|
||||
```nix
|
||||
{lib, config, options, pkgs, ...}:
|
||||
{
|
||||
# Importar otros modulos
|
||||
imports = [
|
||||
# ...
|
||||
./xxx.nix
|
||||
];
|
||||
|
||||
for.bar.enable = true;
|
||||
# Otras declaraciones de opciones
|
||||
# ...
|
||||
}
|
||||
```
|
||||
<!-- pause -->
|
||||
<!-- column: 1 -->
|
||||
|
||||
```nix {all|7|8}
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(import ./special-fonts-1.nix {inherit config pkgs;})
|
||||
./special-fonts-2.nix
|
||||
];
|
||||
|
||||
fontconfig.enable = true;
|
||||
}
|
||||
```
|
||||
<!-- end_slide -->
|
||||
|
||||
<!-- column_layout: [1, 1] -->
|
||||
<!-- column: 0 -->
|
||||
`lib.mkOverride`, `lib.mkDefault`, and `lib.mkForce`
|
||||
===
|
||||
```nix {4-7|10|12|all}
|
||||
{
|
||||
# ......
|
||||
|
||||
mkOverride = priority: content:
|
||||
{ _type = "override";
|
||||
inherit priority content;
|
||||
};
|
||||
|
||||
mkOptionDefault = mkOverride 1500;
|
||||
mkDefault = mkOverride 1000;
|
||||
mkImageMediaOverride = mkOverride 60;
|
||||
mkForce = mkOverride 50;
|
||||
mkVMOverride = mkOverride 10;
|
||||
|
||||
# ......
|
||||
}
|
||||
```
|
||||
|
||||
<!-- column: 1 -->
|
||||
<!-- pause -->
|
||||
|
||||
`lib.mkOrder`, `lib.mkBefore`, and `lib.mkAfter`
|
||||
===
|
||||
```nix
|
||||
{
|
||||
# ......
|
||||
|
||||
mkOrder = priority: content:
|
||||
{ _type = "order";
|
||||
inherit priority content;
|
||||
};
|
||||
|
||||
mkBefore = mkOrder 500;
|
||||
defaultOrderPriority = 1000;
|
||||
mkAfter = mkOrder 1500;
|
||||
|
||||
# ......
|
||||
}
|
||||
```
|
||||
<!-- end_slide -->
|
||||
|
||||
<!-- jump_to_middle -->
|
||||
Vamos a probar algunas cosas 🙃
|
||||
|
|
@ -519,3 +620,27 @@ Tips & tricks
|
|||
|
||||
Muchas Gracias ❤️
|
||||
===
|
||||
<!-- end_slide -->
|
||||
<!-- column_layout: [3, 2] -->
|
||||
<!-- column: 0 -->
|
||||
# Repositorio
|
||||
https://git.peprolinbot.com/peprolinbot/charla-gpul-nixos
|
||||
|
||||
# Referencias
|
||||
- https://nixos-and-flakes.thiscute.world/ (**recomendado** como guia general a seguir)
|
||||
- https://nix.dev/tutorials/nix-language (documentación oficial)
|
||||
- https://bmcgee.ie/posts/2023/01/nix-and-nixos-a-retrospective/
|
||||
- https://medium.com/@Erik_Krieg/what-is-nix-nixos-aab5610f0d7f
|
||||
|
||||
# Otras recomendaciones
|
||||
- [Manual de Nix](https://nix.dev/manual/nix/2.28/)
|
||||
- [Manual de Nixpkgs](https://nixos.org/manual/nixpkgs/stable/)
|
||||
- [Manual de NixOs](https://nixos.org/manual/nixos/stable/)
|
||||
- [nixos.wiki](https://nixos.wiki/)
|
||||
- [Wiki Oficial](https://wiki.nixos.org/)
|
||||
- [awesome-nix](https://github.com/nix-community/awesome-nix)
|
||||
|
||||
<!-- column: 1 -->
|
||||
```bash +image
|
||||
qrencode -t png -m 2 -s 30 -o - "https://git.peprolinbot.com/peprolinbot/charla-gpul-nixos/src/branch/main/enlace_final.md"
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue