cpak: una nueva forma de instalar aplicaciones Linux con aislamiento y eficiencia


Instalar aplicaciones en Linux puede implicar resolver dependencias, gestionar permisos y evitar que los datos de distintos programas se mezclen. cpak propone una alternativa centrada en la portabilidad y el aislamiento: utiliza imágenes OCI para distribuir aplicaciones, pero está diseñado para funcionar sin depender de un demonio como Docker.

La idea es combinar algunas ventajas de los contenedores con una experiencia más adecuada para el escritorio Linux. Las aplicaciones se ejecutan en entornos aislados y, al mismo tiempo, pueden integrarse con componentes del sistema, como el entorno gráfico y los servicios de usuario.

## ¿Qué es cpak y cómo funciona?

cpak gestiona los metadatos de los paquetes mediante repositorios Git y permite realizar actualizaciones atómicas. Esto significa que una actualización se aplica por completo o no se aplica, lo que ayuda a evitar instalaciones incompletas. También ofrece un entorno aislado sin privilegios de administrador para muchas operaciones, conocido como *sandbox rootless*.

La herramienta puede instalarse mediante un binario adecuado para la arquitectura del equipo, como amd64 o arm64, junto con el servicio de almacenamiento correspondiente. Para comprobar si el sistema reúne los requisitos necesarios, incluye el comando `cpak doctor`. Este puede revisar, entre otros aspectos, la disponibilidad de OverlayFS y de los *user namespaces*, y generar un informe en JSON.

## Integración con el escritorio

El aislamiento no tiene por qué traducirse en una experiencia visual ajena al sistema. cpak contempla adaptadores de diálogo para entornos y bibliotecas como GTK, KDE, Qt y Adwaita. Si no encuentra un adaptador compatible, puede recurrir a una interfaz propia de respaldo.

También se describen instaladores gráficos firmados que verifican la integridad del paquete mediante SHA-256 antes de escribir archivos en el espacio local del usuario. Esta comprobación permite detectar paquetes dañados o alterados durante el proceso de instalación.

## Entornos persistentes y permisos granulares

cpak permite crear entornos persistentes, de modo que determinados cambios en el sistema de archivos y en el espacio privado de la aplicación se conserven entre sesiones y reinicios. Para gestionar el aislamiento puede apoyarse en herramientas como `unshare` y `newuidmap`.

Los permisos se definen mediante un manifiesto JSON. En él, el desarrollador especifica los recursos a los que necesita acceder la aplicación, como Bluetooth, Wayland, X11 o carpetas concretas. En algunos casos, el acceso se limita de forma explícita: por ejemplo, el uso del portapapeles en X11 puede canalizarse de manera direccional y con un límite de tamaño indicado por el sistema.

Este modelo hace que el manifiesto sea una pieza central del paquete. Según la descripción de cpak, se rechazan los campos desconocidos para mantener configuraciones predecibles y reducir ambigüedades.

## Compatibilidad con Flatpak y ahorro de espacio

Una de las funciones destacadas de cpak es la posibilidad de instalar aplicaciones procedentes de repositorios Flatpak sin tener Flatpak instalado. Para ello, puede leer repositorios OSTree y adaptar los permisos de las aplicaciones a su propio modelo. También contempla la migración de datos de instalaciones anteriores, incluidos los contenidos de `.var/app`.

El almacenamiento se optimiza mediante deduplicación en dos niveles. Por un lado, se aprovechan los identificadores de las capas OCI; por otro, se comparten bloques de contenido idénticos entre archivos. Así, distintas aplicaciones o versiones pueden reutilizar datos comunes en lugar de guardar copias redundantes.

## Servicios, red y herramientas para desarrolladores

Las aplicaciones que deban permanecer activas en segundo plano pueden registrarse como servicios persistentes, con integración con systemd o, en ciertos casos, con crontab. En materia de red, el entorno aislado puede usar una interfaz de loopback y recurrir a `slirp4netns` cuando necesita conectividad externa sin compartir directamente el espacio de red del sistema anfitrión.

Para quienes desarrollan paquetes, `cpak test` permite comprobar binarios y entradas de escritorio en un entorno temporal antes de publicar. Esta prueba puede ayudar a detectar problemas de integración con antelación.

## Una alternativa que conviene evaluar

cpak reúne distribución basada en imágenes OCI, aislamiento sin privilegios, control detallado de permisos e integración con el escritorio. Su compatibilidad con contenidos de Flatpak y sus mecanismos de deduplicación también apuntan a simplificar la instalación y reducir el uso de almacenamiento.

Como ocurre con cualquier sistema de empaquetado, su utilidad dependerá de la compatibilidad con la distribución, el entorno de escritorio y las aplicaciones que se quieran utilizar. Para quienes buscan una forma más aislada y portable de ejecutar software en Linux, cpak es una propuesta interesante que merece ser evaluada junto con las alternativas ya disponibles.

from Linux Adictos https://ift.tt/lpDEb2z
via IFTTT