la poda de fuentes ya corre en la caja: 5,4 G — y van 32,2 G recuperados hoy
El paso de poda del latido moría con `/dev/fd/63: No such file or directory` y un `viejos: unbound variable` de consecuencia. La causa no era el script: la sustitución de procesos de bash necesita /dev/fd y UNA CAJA TAKANA NO LO TIENE (gioser sí). O sea que ningún `<(...)` de ningún script del hub funcionaba allá; éste fue el primero en toparse. Arreglado en los dos lados: /dev/fd -> /proc/self/fd en la caja con Card OneShot en el genesis (comprobado: `cat <(echo funciona)` responde), y en el script fuera `<(...)` y fuera `df -B1 --output=avail`, que es GNU — sin eso corría pero decía «libres 0.0 G», y un 0 se lee como disco lleno. Resultado: 2 árboles podados, 5,4 G. Con el store-gc del §6.44 son 32,2 G recuperados hoy en la caja: /store al 62 %, /work al 29 %. ⇒ Van dos parches con forma de Card OneShot para cosas que debería hacer el init (hostname y ahora /dev/fd). Es una lista que conviene no alargar. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2667,6 +2667,40 @@ función lo DICE en vez de escribir 0 — un cero inventado habría dicho «no h
|
||||
`find -newermt`, sustitución de procesos, y estos dos). El patrón ya no es anécdota: **un script del
|
||||
hub escrito en una máquina GNU no corre en la caja hasta que se prueba ahí.**
|
||||
|
||||
### 6.45 🧯 `poda-fuentes` tampoco corría — y la causa no era el script: **la caja no tiene `/dev/fd`** *(2026-09-17)*
|
||||
|
||||
El latido, desde la caja, moría así en su paso de poda:
|
||||
|
||||
```
|
||||
poda-fuentes.sh: line 72: /dev/fd/63: No such file or directory
|
||||
poda-fuentes.sh: line 73: viejos: unbound variable
|
||||
⚠ poda de fuentes falló (rc=1) — sigo
|
||||
```
|
||||
|
||||
El segundo error es consecuencia del primero (el `mapfile` nunca corrió) y el primero **no nombra la
|
||||
causa**: la sustitución de procesos de bash (`<(...)`) necesita `/dev/fd`, y **una caja takana no lo
|
||||
tiene**. gioser sí: `/dev/fd -> /proc/self/fd`. O sea que no era este script: **ningún `<(...)` de
|
||||
ningún script del hub funcionaba allá**, y éste fue el primero en toparse.
|
||||
|
||||
Por eso los arreglos son dos, y los dos hacían falta:
|
||||
|
||||
1. **En la caja**: `/dev/fd -> /proc/self/fd`, con una Card **OneShot** en el `genesis` para que
|
||||
sobreviva al reinicio (como la de `hostname`). Comprobado después:
|
||||
`bash -c 'cat <(echo funciona)'` responde. ⇒ *lo correcto a futuro es que lo haga el init o el
|
||||
product-rootfs, no una Card.* Van dos parches de esta forma; es una lista que conviene no alargar.
|
||||
2. **En el script**: fuera `<(...)` (fichero temporal) y fuera `df -B1 --output=avail`, que es GNU —
|
||||
con `df -k` + awk. Sin eso el script corría pero decía **`libres 0.0 G`**, porque el `df` fallaba
|
||||
en silencio y el 0 se lee como un disco lleno.
|
||||
|
||||
Con las dos cosas, la poda hizo su trabajo por primera vez en la caja:
|
||||
|
||||
```
|
||||
2 árbol(es) por encima del suelo · borrados 2 · libres 46.1 G · LIBERADO 5.4 G
|
||||
```
|
||||
|
||||
⇒ **En total, 32,2 G recuperados hoy en la caja**: 26,8 G de artefactos superados (§6.44) y 5,4 G de
|
||||
árboles de fuentes. `/store` al 62 %, `/work` al 29 %.
|
||||
|
||||
## 7. Reusar los scripts que ya existen, y no escribir de nuevo
|
||||
|
||||
Pedido explícito del usuario. El inventario de lo que ya hace el trabajo:
|
||||
|
||||
Reference in New Issue
Block a user