Distri: una distribució per provar tecnologies ràpides de gestió de paquets

Michael Stapelberg, autor del gestor de finestres i3wm i antic desenvolupador actiu de Debian (mantenia uns 170 paquets), es desenvolupa distribució experimental distri i un gestor de paquets amb el mateix nom. El projecte es posiciona com una exploració de possibles maneres d'augmentar el rendiment dels sistemes de gestió de paquets i incorpora algunes idees noves per construir distribucions. El codi del gestor de paquets està escrit a Go i Distribuït per sota la llicència BSD.

Una característica clau del format del paquet de la distribució és que el paquet es lliura en forma d'imatges SquashFS, en lloc d'arxius tar comprimits. L'ús de SquashFS, similar als formats AppImage i Snap, us permet "muntar" un paquet sense haver-lo de desempaquetar, la qual cosa estalvia espai al disc, permet canvis atòmics i fa que el contingut del paquet sigui accessible a l'instant. Al mateix temps, els paquets de distribució, com en el format clàssic “deb”, només contenen components individuals vinculats per dependències amb altres paquets (les biblioteques no es dupliquen en paquets, sinó que s'instal·len com a dependències). En altres paraules, distri intenta combinar l'estructura granular de paquets de distribucions clàssiques com Debian amb els mètodes de lliurament d'aplicacions en forma de contenidors muntats.

Cada paquet de distri es munta al seu propi directori en mode de només lectura (per exemple, el paquet zsh està disponible com a "/ro/zsh-amd64-5.6.2-3"), cosa que té un efecte positiu en la seguretat i protegeix contra canvis accidentals o maliciosos. Per formar una jerarquia de directoris de serveis, com ara /usr/bin, /usr/share i /usr/lib, s'utilitza un mòdul FUSE especial, que combina el contingut de totes les imatges SquashFS instal·lades en un sol tot (per exemple, el / ro/share directori proporciona accés per compartir subdirectoris de tots els paquets).

Paquets en distri fonamentalment lliurat des dels controladors anomenats durant la instal·lació (sense ganxos ni disparadors), i diferents versions d'un paquet poden coexistir entre si, de manera que la instal·lació paral·lela de paquets es fa possible. L'estructura proposada limita el rendiment del gestor de paquets només al rendiment de xarxa a través del qual es descarreguen els paquets. La instal·lació o actualització real del paquet es realitza de manera atòmica i no requereix duplicació de contingut.

S'eliminen els conflictes a l'hora d'instal·lar paquets ja que cada paquet està associat al seu propi directori i el sistema permet la presència de diferents versions d'un paquet (els continguts del directori amb una revisió més recent del paquet s'inclouen als directoris de la unió). La creació de paquets també és molt ràpida i no requereix instal·lar paquets en un entorn de compilació separat (les representacions de les dependències necessàries del directori /ro es creen a l'entorn de compilació).

Admet ordres típiques de gestió de paquets, com ara "distri install" i "distri update", i en comptes d'ordres d'informació, podeu utilitzar la utilitat estàndard "ls" (per exemple, per veure els paquets instal·lats, només heu de mostrar una llista de directoris a " /ro”, i per saber en quin paquet s'inclou el fitxer, mireu on porta l'enllaç d'aquest fitxer).

El kit de distribució de prototips proposat per a l'experimentació inclou aproximadament 1700 bosses i llest imatges d'instal·lació amb un instal·lador, adequat tant per a la instal·lació com a sistema operatiu principal com per executar-se en QEMU, Docker, Google Cloud i VirtualBox. Admet l'arrencada des d'una partició de disc xifrada i un conjunt d'aplicacions estàndard per crear un escriptori basat en el gestor de finestres i3 (Google Chrome s'ofereix com a navegador). Proporcionat un conjunt d'eines complet per muntar una distribució, preparar i generar paquets, distribuir paquets a través de miralls, etc.

Font: opennet.ru

Afegeix comentari