Пасля двух гадоў працы над праектам распрацоўшчыкі дыстрыбутыва SerpentOS заявілі аб магчымасці тэставання асноўнага інструментара, які ўключае ў сябе:
- пакетны мэнэджар moss;
- сістэму кантэйнераў moss-container;
- сістэму кіравання залежнасцямі moss-deps;
- сістэму зборкі boulder;
- сістэму ўтойвання сэрвісаў avalanche;
- менеджэр рэпазітараў vessel;
- панэль кіравання summit;
- базу даных moss-db;
- сістэму прайграванага бутстрэпінг (bootstrap) bill.
Даступныя публічны API і рэцэпты пакетаў. Для распрацоўкі інструментара ў асноўным выкарыстоўваецца мова праграмавання D, а код распаўсюджваецца пад ліцэнзіяй Zlib. Пакеты пішуцца на мове канфігурацыі YAML і збіраюцца ва ўласны бінарны фармат .stone, які ўключае:
- Метададзеныя пакета і яго залежнасці;
- Інфармацыю аб размяшчэнні пакета ў сістэме адносна іншых пакетаў;
- Індэкс кэшаваных дадзеных;
- Змесціва файлаў пакета, неабходных для працы.
Пакетны мэнэджар moss запазычае шматлікія сучасныя магчымасці, якія развіваюцца ў такіх пакетных мэнэджарах, як eopkg/pisi, rpm, swupd і nix/guix, захоўваючы пры гэтым традыцыйны погляд на маніпуляцыю пакетамі. Усе пакеты па змаўчанні збіраюцца ў рэжыме stateless і не ўключаюць файлы, не звязаныя з аперацыйнай сістэмай, каб пазбегнуць сітуацый, у якіх патрабуецца вырашэнне канфліктаў паміж пакетамі або аперацыі зліцця.
Пакетны мэнэджар выкарыстоўвае атамарную мадэль абнаўлення сістэмы, пры якой фіксуецца стан rootfs, а пасля абнаўлення стан перамыкаецца на новы. Як следства калі ў ходзе абнаўлення ўзніклі нейкія праблемы, ёсць магчымасць адкату змяненняў на мінулае працоўны стан.
Для эканоміі дыскавай прасторы пры захоўванні некалькіх версій пакетаў ужываецца дэдуплікацыя на аснове цвёрдых спасылак і сумесна выкарыстоўванага кэша. Змесціва ўсталяваных пакетаў размяшчаецца ў каталогу /os/store/installation/N, дзе N нумар версіі. Да змесціва дадзенага каталога пры дапамозе спасылак прывязваюцца базавыя каталогі (напрыклад, /sbin паказвае на /os/store/installation/0/usr/bin, а /usr на /os/installation/0/usr).
Працэс усталёўкі пакетаў складаецца з наступных этапаў:
- Напісанне рэцэпта па ўстаноўцы (stone.yml);
- Зборка пакета з дапамогай boulder;
- Атрыманне бінарнага пакета ў фармаце .stone з неабходнымі метададзенымі;
- Занясенне ў базу дадзеных пакетаў;
- Ўстаноўка пакетным мэнэджэрам moss.
Вакол праекту згуртавалася старая каманда распрацоўнікаў дыстрыбутыва Solus. Напрыклад, у распрацоўцы дыстрыбутыва SerpentOS прымаюць удзел Айкі Доэрці (Ikey Doherty), стваральнік дыстрыбутыва Solus, і Джошуа Стробл (Joshua Strobl), ключавы распрацоўшчык працоўнага стала Budgie, раней абвясціў пра сыход з кіравальнай рады (Core Team) праекту Solus і зняўшы паўнамоцтвы лідэра, які адказвае за ўзаемадзеянне з распрацоўшчыкамі і развіццё карыстацкага інтэрфейсу (Experience Lead).
Распрацоўнікі SerpentOS заклікаюць адмыслоўцаў, дасведчаных мова праграмавання D, далучыцца да распрацоўкі асноўнага інструментара і/ці напісанні рэцэптаў пакетаў, а нетэхнічных адмыслоўцаў просяць дапамагчы ў перакладзе дакументацыі на розныя мовы.
Крыніца: opennet.ru