Empaquetando

Empaquetar es el proceso de crear un paquete para un software o una librería, para que pueda ser instalada en una distribución. Vanilla OS tiene un sistema de archivos raíz poco convencional, por lo que algunas consideraciones y pautas deben ser seguidas.

¿Cuando empaquetar?

Vanilla OS es una distribución transaccional, lo que significa que recibe actualizaciones vía transacciones. El proceso es manejado por ABRoot, lo que requiere un reinicio para que los cambios surtan efecto. Esto significa que el usuario tendrá que reiniciar el sistema después de instalar un paquete, y esto no es ideal. Además, la partición raíz es muy pequeña, pero esto es intencional para prevenir que el usuario instale demasiados paquetes, lo cual expondría el sistema a vulnerabilidades de seguridad y mayor complejidad durante las transacciones.

Por estas razones, es recomendable empaquetar solamente software esencial y librerías. Para entender mejor qué es esencial, puede revisar la siguiente tabla:

Software Esencial Razón
Chromium No Es un navegador web, el cual no es esencial para el sistema y puede ser instalado vía Apx, Flatpak, Snap ó AppImage.
fuse Este es un controlador de dispositivos, el cual es esencial para que AppImage funcione, y debe ser instalado por fuera del contenedor de Apx.
GIMP No Es un editor gráfico, el cual no es esencial para el sistema y puede ser instalado vía Apx, Flatpak, Snap ó AppImage.

Pautas de Empaquetado

Esta sección está organizada en múltiples subsecciónes, cada una describiendo un aspecto diferente de el proceso de empaquetamiento.

Nombrado

No hay restricciones en el nombre del paquete, pero es recomendable que use el mismo nombre que el proyecto original. Por ejemplo, si el proyecto se llama foo, el paquete debe llamarse foo, y no bar. Esto es importante porque permite al usuario fácilmente identificar el paquete.

Versionamiento

La versión del paquete debe ser la misma que del proyecto original (también llamado upstream), con cambios menores si es necesario. Por ejemplo, si la versión upstream es 1.2.3, la versión del paquete debe ser 1,2,3, y no 2.0.0. Si el paquete tiene algunos cambios menores, la versión debería ser 1.2.3-1, 1.2.3-2, etc. La versión nunca debe rebasar o quedarse atrás de la versión upstream.

Almacenamiento

Algunas aplicaciones requieren mucho almacenamiento, y esto puede ser un problema para Vanilla OS, la cual tiene una partición raíz muy pequeña. Si la aplicación no puede ser instalada en el contenedor Apx o de cualquier otra forma, es recomendable editar su comportamiento para que almacene sus datos en el directorio home del usuario o en la partición /home, la cual tiene mucha más capacidad.

Es también buena práctica, ya que permite al usuario respaldar con facilidad los datos de la aplicación, y también fácilmente remover la aplicación sin perder los datos.