Distribuciones

Toolpak: la propuesta de GNOME OS para distribuir herramientas CLI en escritorios image-based

TL;DR — Lo que vas a tener al final

  • Tiempo de setup: 30 minutos para instalación, 1-2 horas para upgrade in-place.
  • Requisitos: Backup de /home, conexión a internet, 20+ GB libres.
  • Resultado: Sistema actualizado con soporte extendido, drivers funcionando.
  • Troubleshooting: dnf distro-sync, akmods para NVIDIA, journalctl -p err.

Por qué GNOME OS necesita algo distinto a Flatpak para herramientas CLI

Jordan Petridis, desarrollador de GNOME y mantenedor de releases, publicó el 26 de septiembre de 2026 un post en su blog “Rust in Peace” donde describe una propuesta llamada Toolpak: una forma de distribuir herramientas de línea de comandos y utilidades de desarrollo para escritorios basados en imágenes (image-based), entre ellos GNOME OS, KDE Linux y las próximas iteraciones de Fedora Silverblue basadas en bootc.

Flatpak y Flathub resolvieron el problema de distribución de aplicaciones gráficas en Linux, pero la historia para desarrolladores sigue incompleta. Herramientas como strace, ripgrep o qemu no se pueden confinar de forma realista sin reescribirlas, y los approaches actuales que intentaron resolver esto (rpm-ostree overlays, Toolbox, Distrobox, Homebrew, Flatpak) tienen problemas estructurales cuando se trata de depurar el sistema mismo.

El problema real con los approaches que ya probamos

Petridis revisa cuatro approaches previos y explica por qué ninguno funciona bien para tooling de desarrollo en un sistema image-based:

Approach Cómo funciona Problema concreto
rpm-ostree overlays (Fedora Silverblue clásico) Extender el sistema base con paquetes del repo Fedora Los paquetes overlayed pueden romper el OS de formas inesperadas. La próxima Silverblue basada en bootc abandona explícitamente este paradigma.
System extensions de GNOME OS Overlay con toolchain necesario para compilar el OS Es una lista finita de utilidades para construir GNOME OS. No cubre la larga cola de herramientas que distintos desarrolladores necesitan (ej. kernel development).
Toolbox / Distrobox Replicar la experiencia package-based dentro de un contenedor Sigue dependiendo de la infraestructura tradicional de paquetes y agrega las restricciones del contenedor que las herramientas no esperan. Limita desarrollar componentes del sistema.
Homebrew Toolchain de desarrollo independiente Para que los binarios sean usables directo en la terminal, deben tener prioridad sobre los del sistema. Eso significa que el sistema se rompe si hay mismatch. Ejemplo: instalar QEMU vía Homebrew puede overridear la GLib que el resto del sistema usa.
Flatpak Contenedores con portals para acceder a recursos del sistema Diseñado específicamente para apps gráficas; los puntos de integración (portals) no son apropiados para CLI tools. Apps debugging/IDEs viejos no se adaptan al modelo confinado.

El denominador común es el conflicto entre la funcionalidad que el tooling necesita (acceso completo al sistema, shelling out a otros tools, depuración low-level) y las restricciones que cualquier sandbox impone. Petridis reconoce que ningún approach anterior escapa a esa tensión.

Cómo se hace: la propuesta Toolpak

Toolpak parte de una premisa diferente: en lugar de confinar la herramienta, le damos acceso irrestricto al sistema pero la aislamos del host OS de otras formas. La pieza clave es usar Discoverable Disk Images (UAPI.3) como formato de imagen. UAPI.3 es una especificación del grupo UAPI Group que define un layout estándar para imágenes de disco, lo que permite aplicar técnicas modernas de seguridad (Verity, entre otras) y facilita builds reproducibles cuando el tooling de build lo permite.

# Flujo imaginario de uso (no existe implementación todavía)
toolpak install strace
toolpak install ripgrep
toolpak install qemu-system-x86
# Al ejecutar, Toolpak monta la imagen en un mount namespace
# y prepende los binarios al PATH del usuario
strace -e openat ./mi-programa

El diseño tiene varias decisiones técnicas deliberadas:

  • Mount namespace para los binarios, con un patrón inspirado en Flatpak pero adaptado: /usr viene de una Runtime Image compartida entre todas las herramientas (igual que las bases de Flatpak), y /app contiene el contenido específico del Tool. Esto es lo que hace posible compartir runtime entre tools sin duplicar.
  • Acceso irrestricto al resto del sistema. Los edge cases donde el mount namespace conflictúa son menores y aceptables. La idea es que las herramientas puedan hacer su trabajo sin que tengamos que portar cada una.
  • Prepend al PATH del usuario: los binarios de Toolpak aparecen antes que los del sistema, pero la lógica interna del wrapper configura el mount namespace antes de ejecutar el binario real. Esto evita tocar el linker y las shared libraries. Solo hay riesgo real cuando se overridea un binario del sistema con uno incompatible (ej. GNU Tar del sistema con BSD Tar).
  • Sin dependencias entre herramientas. Se evita toda la complejidad de resolución de dependencias y package management. Cada Tool es independiente.
  • Todas las dependencias bundleadas. La herramienta siempre ejecuta contra el ambiente con el que fue testeada. Permite traer versiones propias de bibliotecas presentes en el sistema sin conflicts (gracias al split /usr + /app).
  • Firma con clave confiable + verity check en runtime. Como las herramientas tienen acceso arbitrario al sistema, no puede ser trivial instalar imágenes random. Las imágenes se firman con clave confiable, se verifican con Verity al ejecutar, y deben pasar revisión antes de aparecer en el “app store” insignia.
  • Aplicaciones que puedan empaquetarse con Flatpak quedan rechazadas de Toolpak, salvo casos como IDEs en Flathub que son menos funcionales en Flatpak. Esto evita duplicación.

Build tooling: qué necesita el Toolpak en sí

Para que Toolpak se use, el tooling para construir imágenes tiene que ser tan bueno como la propuesta de runtime. Petridis lista seis propiedades que el build tooling debe cumplir:

  1. Fácil de orquestar builds de una herramienta y sus dependencias.
  2. Caching agresivo de artefactos en un Content Addressable Storage.
  3. Reproducible por default, con tooling para verificar el output fácilmente.
  4. Útil tanto para desarrollo local como para componer la imagen final.
  5. Manejo de licensing, SBOM y otros requisitos.
  6. Un plugin o wrapper alrededor de Buildstream que cumpla todo esto.

Buildstream es el candidato natural: es el motor de build que GNOME usa internamente para construir GNOME OS y otros proyectos image-based, y ya tiene integración con Content Addressable Storage, build reproducible y tracking de licencias.

Cuándo NO va a funcionar (o dónde podría romperse)

La propuesta es honesta sobre sus limitaciones:

  • Edge cases del mount namespace: aunque Petridis dice que son menores, escenarios donde múltiples tools monten cosas en paths similares pueden dar conflictos. Hace falta más investigación sobre qué safeguards hace falta.
  • Override de binarios incompatibles: si overrideas GNU Tar del sistema con BSD Tar (u otro caso de binario incompatible), el sistema puede romperse. La mitigación es restringir el override a “solo si la binary existe en el sistema”, pero no resuelve el 100% de los casos.
  • Firma y verity dependen de ecosistema: el modelo asume que existe una clave raíz confiable y un proceso de revisión antes de subir al app store. Esto requiere construir la infraestructura de gobernanza, no solo el formato técnico.
  • Apps debugging e IDEs viejos: aunque técnicamente posible (GNOME Builder y el terminal Ptyxis en Flathub son prueba), apps que no fueron diseñadas para recursos sandboxed siguen quebrados.

Resumen

Toolpak es una propuesta en etapa temprana que busca llenar el hueco que Flatpak no cubre: distribución de herramientas CLI y utilidades de desarrollo para escritorios image-based. La idea central no es confinar más, sino aislar las herramientas del host OS de otras formas (imágenes UAPI.3 firmadas, mount namespace, bundle de dependencias, prepend al PATH) y darles acceso irrestricto al sistema. El build tooling debería apoyarse en Buildstream para cubrir caching, reproducibilidad y SBOM.

El equipo de GNOME OS trabaja hacia un prototipo como parte de un proyecto del Prototype Fund (fondo alemán para prototypes de software libre) y planea compartir más en las próximas semanas. Si quieres opinar sobre el diseño, el canal es #gnome-os:gnome.org en Matrix, o dejar un comentario en el post original.

Para distribuciones basadas en bootc (próxima Fedora Silverblue, KDE Linux), la propuesta es directamente relevante: si tu OS es image-based, tu modelo de distribución de tooling también tiene que repensarse. Toolpak es una de las primeras propuestas serias sobre cómo hacerlo sin caer en los problemas de rpm-ostree overlays o Homebrew.

Preguntas frecuentes

¿Por qué Toolpak: la propuesta de GNOME OS para distribuir herramientas CLI en escritorios image-based es relevante para sysadmins Linux?

Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.

¿Qué necesito para empezar con Toolpak: la propuesta de GNOME?

Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.

¿Cuáles son los errores más comunes con Toolpak: la propuesta de GNOME?

Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.

¿Cuándo usar Toolpak: la propuesta de GNOME y cuándo una alternativa?

Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.

¿Cómo migro desde una configuración previa a Toolpak: la propuesta de GNOME?

Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.

Lee también

Alfonso Moreno | Sysadmin Senior

Soy Alfonso, sysadmin senior con RHCE y más de 10 años administrando sistemas Linux para empresas y proyectos personales. Me especializo en infraestructura, redes, virtualización, monitoring, automation y self-hosting. Sobre SoyLinux.com SoyLinux.com es un blog técnico en español sobre Linux, software libre y self-hosting. Lo mantengo en mi tiempo libre. Áreas de expertise - Linux server administration: RHEL, CentOS, Rocky, Alma, Fedora, Debian, Ubuntu - Network services: Postfix, BIND, Samba, NFS, Squid - Virtualización y containers: KVM, Proxmox, Docker, Podman - Monitoring: Prometheus, Grafana, Zabbix - Automation: Ansible, Bash scripting - Self-hosting: Vaultwarden, Nextcloud, Jellyfin, Immich, Homelab Contacto - Email: [email protected]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *