Distri - unha distribución para probar tecnoloxías rápidas de xestión de paquetes

Michael Stapelberg, autor do xestor de fiestras de mosaicos i3wm e antigo desenvolvedor activo de Debian (mantivo uns 170 paquetes), desenvólvese distribución experimental distri e un xestor de paquetes co mesmo nome. O proxecto sitúase como unha exploración de posibles formas de aumentar o rendemento dos sistemas de xestión de paquetes e incorpora algunhas ideas novas para construír distribucións. O código do xestor de paquetes está escrito en Go e distribuído por baixo a licenza BSD.

Unha característica clave do formato do paquete da distribución é que o paquete se entrega en forma de imaxes SquashFS, en lugar de arquivos tar comprimidos. Usar SquashFS, semellante aos formatos AppImage e Snap, permíteche "montar" un paquete sen ter que desempaquetalo, o que aforra espazo no disco, permite cambios atómicos e fai que o contido do paquete sexa instantaneamente accesible. Ao mesmo tempo, os paquetes distri, como no formato “deb” clásico, conteñen só compoñentes individuais ligados por dependencias con outros paquetes (as bibliotecas non se duplican nos paquetes, senón que se instalan como dependencias). Noutras palabras, distri tenta combinar a estrutura granular de paquetes das distribucións clásicas como Debian cos métodos de entrega de aplicacións en forma de contedores montados.

Cada paquete en distri está montado no seu propio directorio en modo de só lectura (por exemplo, o paquete con zsh está dispoñible como "/ro/zsh-amd64-5.6.2-3"), o que ten un efecto positivo na seguridade e protexe contra cambios accidentais ou maliciosos. Para formar unha xerarquía de directorios de servizos, como /usr/bin, /usr/share e /usr/lib, úsase un módulo especial FUSE, que combina o contido de todas as imaxes SquashFS instaladas nun todo (por exemplo, o / o directorio ro/share proporciona acceso para compartir subdirectorios de todos os paquetes).

Paquetes en distri fundamentalmente entregado desde controladores chamados durante a instalación (sen ganchos nin disparadores), e diferentes versións dun paquete poden coexistir entre si, polo que se fai posible a instalación paralela de paquetes. A estrutura proposta limita o rendemento do xestor de paquetes só ao rendemento da rede a través do cal se descargan os paquetes. A instalación ou actualización real do paquete realízase de forma atómica e non require duplicación do contido.

Elimínanse os conflitos ao instalar paquetes xa que cada paquete está asociado ao seu propio directorio e o sistema permite a presenza de diferentes versións dun paquete (os contidos do directorio cunha revisión máis recente do paquete están incluídos nos directorios da unión). A construción de paquetes tamén é moi rápida e non require a instalación de paquetes nun ambiente de compilación separado (as representacións das dependencias necesarias do directorio /ro créanse no contorno de compilación).

Soportado comandos típicos de xestión de paquetes, como “distri install” e “distri update”, e en lugar de comandos de información, pode usar a utilidade estándar “ls” (por exemplo, para ver os paquetes instalados, basta con mostrar unha lista de directorios no “ /ro” e, para saber en que paquete está incluído o ficheiro, vexa a onde leva a ligazón deste ficheiro).

O kit de distribución de prototipos proposto para a experimentación inclúe aproximadamente 1700 paquetes e listo imaxes de instalación cun instalador, adecuado tanto para a instalación como SO principal como para a execución en QEMU, Docker, Google Cloud e VirtualBox. Admite o arranque desde unha partición de disco cifrada e un conxunto de aplicacións estándar para crear un escritorio baseado no xestor de fiestras i3 (ofrece Google Chrome como navegador). Fornecido un completo kit de ferramentas para montar unha distribución, preparar e xerar paquetes, distribuír paquetes a través de espellos, etc.

Fonte: opennet.ru

Engadir un comentario