Distri - isang pamamahagi para sa pagsubok ng mabilis na mga teknolohiya sa pamamahala ng pakete

Michael Stapelberg, may-akda ng i3wm tiled window manager at dating aktibong Debian developer (nagpanatili ng humigit-kumulang 170 na pakete), bubuo pang-eksperimentong pamamahagi distri at isang manager ng package na may parehong pangalan. Ang proyekto ay nakaposisyon bilang isang paggalugad ng mga posibleng paraan upang mapataas ang pagganap ng mga sistema ng pamamahala ng pakete at naglalaman ng ilang mga bagong ideya para sa mga pamamahagi ng gusali. Ang code ng manager ng package ay nakasulat sa Go at ipinamahagi ni sa ilalim ng lisensya ng BSD.

Ang isang pangunahing tampok ng format ng pakete ng pamamahagi ay ang pakete ay inihatid sa anyo ng mga larawan ng SquashFS, sa halip na mga naka-compress na tar archive. Ang paggamit ng SquashFS, na katulad ng mga format ng AppImage at Snap, ay nagbibigay-daan sa iyong "i-mount" ang isang pakete nang hindi ito kailangang i-unpack, na nakakatipid ng espasyo sa disk, nagbibigay-daan sa mga pagbabago sa atomic, at ginagawang agarang naa-access ang mga nilalaman ng package. Kasabay nito, ang mga distri package, tulad ng sa klasikong "deb" na format, ay naglalaman lamang ng mga indibidwal na bahagi na naka-link ng mga dependency sa iba pang mga pakete (ang mga aklatan ay hindi nadoble sa mga pakete, ngunit naka-install bilang mga dependency). Sa madaling salita, sinusubukan ng distri na pagsamahin ang istraktura ng butil na pakete ng mga klasikong distribusyon tulad ng Debian sa mga paraan ng paghahatid ng mga application sa anyo ng mga naka-mount na lalagyan.

Ang bawat package sa distri ay naka-mount sa sarili nitong direktoryo sa read-only mode (halimbawa, ang package na may zsh ay available bilang β€œ/ro/zsh-amd64-5.6.2-3”), na may positibong epekto sa seguridad at pinoprotektahan laban sa hindi sinasadya o malisyosong mga pagbabago. Upang bumuo ng isang hierarchy ng mga direktoryo ng serbisyo, tulad ng /usr/bin, /usr/share at /usr/lib, isang espesyal na FUSE module ang ginagamit, na pinagsasama ang mga nilalaman ng lahat ng naka-install na SquashFS na imahe sa isang buo (halimbawa, ang / Ang ro/share na direktoryo ay nagbibigay ng access upang magbahagi ng mga subdirectory mula sa lahat ng mga pakete).

Mga package sa distri sa panimula naihatid mula sa mga handler na tinatawag sa panahon ng pag-install (walang mga hook o trigger), at ang iba't ibang bersyon ng isang package ay maaaring magkasama sa isa't isa, kaya ang parallel na pag-install ng mga package ay nagiging posible. Nililimitahan lamang ng iminungkahing istruktura ang pagganap ng manager ng package sa throughput ng network kung saan dina-download ang mga package. Ang aktwal na pag-install o pag-update ng package ay isinasagawa nang atomically at hindi nangangailangan ng pagdoble ng nilalaman.

Ang mga salungatan kapag nag-i-install ng mga pakete ay inaalis dahil ang bawat pakete ay nauugnay sa sarili nitong direktoryo at pinapayagan ng system ang pagkakaroon ng iba't ibang bersyon ng isang pakete (ang mga nilalaman ng direktoryo na may mas kamakailang rebisyon ng pakete ay kasama sa mga direktoryo ng unyon). Ang pagbuo ng mga pakete ay napakabilis din at hindi nangangailangan ng pag-install ng mga pakete sa isang hiwalay na build environment (ang mga representasyon ng mga kinakailangang dependency mula sa /ro na direktoryo ay nilikha sa build environment).

Sinusuportahan tipikal na mga utos sa pamamahala ng package, tulad ng "pag-install ng distri" at "pag-update ng distri", at sa halip na mga utos ng impormasyon, maaari mong gamitin ang karaniwang utility na "ls" (halimbawa, upang tingnan ang mga naka-install na pakete, magpakita lamang ng isang listahan ng mga direktoryo sa " /ro” hierarchy, at upang malaman kung saang package kasama ang file, tingnan kung saan humahantong ang link mula sa file na ito).

Ang prototype distribution kit na iminungkahi para sa eksperimento ay kinabibilangan ng tungkol sa 1700 na pakete at handa na mga larawan sa pag-install na may installer, na angkop kapwa para sa pag-install bilang pangunahing OS at para sa pagpapatakbo sa QEMU, Docker, Google Cloud at VirtualBox. Sinusuportahan nito ang pag-boot mula sa isang naka-encrypt na disk partition at isang set ng mga karaniwang application para sa paglikha ng isang desktop batay sa i3 window manager (Inaalok ang Google Chrome bilang isang browser). Ibinigay isang kumpletong toolkit para sa pag-assemble ng isang pamamahagi, paghahanda at pagbuo ng mga pakete, pamamahagi ng mga pakete sa pamamagitan ng mga salamin, atbp.

Pinagmulan: opennet.ru

Magdagdag ng komento