el primer store-gc de la caja: 26,8 G liberados, y el patrón GNU-vs-busybox ya va por cinco
/store pasó de 84,7 G usados (91 %) a 57,9 G (62 %): 337 superados borrados y VERIFICADOS, 1657 → 1320 artefactos. Los 150 huérfanos (11,4 G) quedan intactos por diseño: son el único ejemplar de su nombre. EL CONTROL QUE NO ES OBVIO: 11 binarios de /usr/bin de esa caja son symlinks que apuntan DENTRO del store — los daemons instalados estos dos días. Un gc que borre el artefacto equivocado no rompe el store, rompe el /usr/bin de una máquina en producción. Comprobado antes (los 11 enlazan al hash vigente) y después (los 11 resuelven, 21 entes corriendo). Y el gc no sabía decir sus dos números: `du --files0-from=-` es GNU y busybox no lo tiene; `df -h /home` estaba cableado cuando el store vive en /store (sin /home, `tail -1` devolvía la CABECERA: de ahí «libres: Available → Available»). El primer arreglo también estaba mal —`xargs -d` es otra extensión GNU— y eso imprimió «huérfanos ?»: ese `?` es deliberado, un cero inventado habría dicho «no hay nada que ganar» con 11,4 G en huérfanos. Con `xargs -0` la caja ya contesta 11.4G. ⇒ Cinco tropiezos del mismo día con la misma forma (/dev/tcp, llaves, find -newermt, sustitución de procesos, y estos dos): un script del hub escrito en una máquina GNU no corre en la caja hasta que se prueba ahí. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2616,6 +2616,57 @@ no se corrió allá.
|
||||
|
||||
⇒ **puerta 4 en verde.** Con eso, de las ocho quedan sólo las dos a medias (5 y 7) y ninguna en rojo.
|
||||
|
||||
### 6.44 🧹 Primer `store-gc` en la caja: 26,8 G — y dos bugs que sólo salen fuera de GNU *(2026-09-17)*
|
||||
|
||||
El store estaba al **91 %** (8,2 G libres) justo cuando la caja pasó a ser hub, que es la peor
|
||||
combinación: un hub sella y cosecha.
|
||||
|
||||
```
|
||||
antes: 84,7 G usados · 8,2 G libres · 91 % · 1657 artefactos
|
||||
después: 57,9 G usados · 35,0 G libres · 62 % · 1320 artefactos
|
||||
```
|
||||
|
||||
**337 artefactos superados borrados y verificados (0 sobrevivientes), 26,8 G.** El default del gc no
|
||||
toca los **150 huérfanos** —`11,4 G`, los que son el único ejemplar de su nombre— y eso está bien:
|
||||
borrarlos es la diferencia entre «se reconstruye en dos minutos» y «hay que rehacer la torre».
|
||||
|
||||
#### El control que hay que correr DESPUÉS de un gc en esta caja, y que no es obvio
|
||||
|
||||
**11 binarios de `/usr/bin` son symlinks que apuntan DENTRO del store** — los daemons que se
|
||||
instalaron estos dos días. Un gc que borre el artefacto equivocado no rompe el store: rompe el
|
||||
`/usr/bin` de una máquina en producción. Antes de `--aplicar` se comprobó que los 11 enlazan al hash
|
||||
**vigente** (y por lo tanto están en el conjunto protegido); después, que los 11 siguen resolviendo y
|
||||
que los 21 entes siguen corriendo. Los dos controles pasaron.
|
||||
|
||||
⚠ Y la advertencia que el propio gc imprime y que en esa caja **no se puede satisfacer**: «sin
|
||||
`.config` legible (ni `/proc/config.gz` ni `/boot/config-…`) ⇒ NO se protege ningún kernel por esta
|
||||
vía». Con el default da igual; con `--huerfanos` en una máquina que arranca de su store, no.
|
||||
|
||||
#### Los dos números que el gc no sabía decir
|
||||
|
||||
Funcionó, pero sus dos cifras salieron vacías — y son las que uno mira para decidir si vale la pena:
|
||||
|
||||
```
|
||||
==> espacio: superados · huérfanos
|
||||
==> 337 artefactos borrados y VERIFICADOS · libres: Available → Available
|
||||
```
|
||||
|
||||
1. **`du -sch --files0-from=-` es de GNU y busybox no lo tiene** ⇒ `espacio()` devolvía vacío. *Un
|
||||
número que falta se lee como un número chico.*
|
||||
2. **`df -h /home` estaba cableado** y el store no vive ahí: en gioser es un bind-mount del volumen,
|
||||
en la caja es `/store`. Sin `/home`, `tail -1` se quedó con la CABECERA — de ahí
|
||||
«Available → Available».
|
||||
|
||||
Arreglados los dos… y el primer arreglo **también estaba mal**: `xargs -d '\n'` es otra extensión
|
||||
GNU. Eso imprimió `huérfanos ?`, y ese `?` es deliberado: cuando el total no se puede calcular, la
|
||||
función lo DICE en vez de escribir 0 — un cero inventado habría dicho «no hay nada que ganar» con
|
||||
11,4 G en huérfanos. Con `tr '\n' '\0' | xargs -0`, que busybox sí tiene, la caja ya contesta
|
||||
**`espacio: superados 0 · huérfanos 11.4G`**.
|
||||
|
||||
⇒ Van **cinco** tropiezos del mismo día con la misma forma (`/dev/tcp`, expansión de llaves,
|
||||
`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í.**
|
||||
|
||||
## 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