Distri - дыстрыбутыў для абкаткі тэхналогій хуткага кіравання пакетамі

Майкл Штапельберг (Michael Stapelberg), аўтар мазаічнага аконнага мэнэджара i3wm і ў мінулым актыўны распрацоўшчык Debian (суправаджаў каля 170 пакетаў), развівае эксперыментальны дыстрыбутыў distri і аднайменны пакетны мэнэджар. Праект пазіцыянуецца як даследаванне магчымых шляхоў павелічэння прадукцыйнасці сістэм кіравання пакетамі і ўвасабляе некаторыя новыя ідэі пабудовы дыстрыбутываў. Код пакетнага мэнэджара напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй BSD.

Ключавой асаблівасцю прапанаванага ў дыстрыбутыве фармату пакетаў з'яўляецца пастаўка пакета ў форме выяў SquashFS, замест сціснутых tar-архіваў. Ужыванне SquashFS, па аналогіі з фарматамі AppImage і Snap, дазваляе "прымантаваць" пакет без неабходнасці выканання распакавання, што эканоміць дыскавую прастору, дапушчае атамарныя змены і робіць змесціва пакета імгненна даступным. Пры гэтым пакеты distri, як і ў класічным фармаце "deb", утрымоўваюць толькі асобныя кампаненты, злучаныя залежнасцямі з іншымі пакетамі (бібліятэкі не дублююцца ў пакетах, а ўсталёўваюцца як залежнасці). Іншымі словамі, distri спрабуе сумясціць грануляваную пакетную структуру класічных дыстрыбутываў, такіх як Debian, з метадамі пастаўкі прыкладанняў у форме мантаваных кантэйнераў.

Кожны пакет у distri мантуецца ў свой каталог у рэжыме толькі для чытання (напрыклад, пакет з zsh даступны як "/ro/zsh-amd64-5.6.2-3"), што дадатна ўплывае на бяспеку і абараняе ад выпадковых або зламысных змен. Для фармавання іерархіі службовых каталогаў, такіх як /usr/bin, /usr/share і /usr/lib, ужываецца адмысловы FUSE-модуль, які аб'ядноўвае змесціва ўсіх усталяваных SquashFS-вобразаў у адно цэлае (напрыклад, каталог /ro/share падае доступ да падкаталогам share з усіх пакетаў).

пакеты у distri прынцыпова пазбаўлены ад выкліканых падчас усталёўкі апрацоўшчыкаў (няма хукоў і трыгераў), а розныя версіі пакета могуць суіснаваць адзін з адным, таму становіцца магчымым распаралельванне ўсталёўкі пакетаў. Прапанаваная структура абмяжоўвае прадукцыйнасць пакетнага мэнэджара толькі прапускной здольнасцю сеткі, праз якую загружаюцца пакеты. Непасрэдна ўстаноўка або абнаўленне пакета выконваецца атамарна і не патрабуе дубліравання змесціва.

Канфлікты пры ўсталёўцы пакетаў выключаюцца бо кожны пакет звязваецца са сваім каталогам і ў сістэме дапушчаецца наяўнасць розных версій аднаго пакета (у зводныя каталогі падлучаецца змесціва каталога з свежей рэвізіяй пакета). Зборка пакетаў таксама ажыццяўляецца вельмі хутка і не патрабуе ўсталёўкі пакетаў у асобнае зборачнае асяроддзе (у зборачным асяроддзі ствараецца ўяўленні неабходных залежнасцяў з каталога /ro).

Падтрымліваюцца тыпавыя каманды кіравання пакетамі, такія як "distri install" і "distri update", а замест інфармацыйных каманд можна ўжываць штатную ўтыліту "ls" (напрыклад, для прагляду ўсталяваных пакетаў досыць вывесці спіс каталогаў у іерархіі "/ro", а для таго каб пазнаць у склад якога пакета ўваходзіць файл, паглядзець куды вядзе спасылка з гэтага файла).

Прапанаваны для эксперыментаў прататып дыстрыбутыва ўключае каля 1700 пакетаў і гатовыя ўсталявальныя вобразы з усталёўнікам, прыдатныя як для ўсталёўкі ў якасці асноўнай АС, так і для запуску ў QEMU, Docker, Google Cloud і VirtualBox. Падтрымліваецца загрузка з шыфраванай дыскавай часткі і набор тыпавых прыкладанняў для стварэння працоўнага стала на базе аконнага мэнэджара i3 (у якасці браўзэра прапануецца Google Chrome). Прадастаўляецца паўнавартасны інструментар для зборкі дыстрыбутыва, падрыхтоўкі і фармаванні пакетаў, распаўсюджванні пакетаў па люстэрках і да т.п.

Крыніца: opennet.ru

Дадаць каментар