Даступны пакетны мэнэджар GNU Guix 1.4 і дыстрыбутыў на яго аснове

Адбыўся рэліз пакетнага мэнэджара GNU Guix 1.4 і пабудаванага на яго аснове дыстрыбутыва GNU/Linux. Для загрузкі сфарміраваны вобразы для ўстаноўкі на USB Flash (814 МБ) і выкарыстання ў сістэмах віртуалізацыі (1.1 ГБ). Падтрымліваецца праца на архітэктурах i686, x86_64, Power9, armv7 і aarch64.

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

Асноўныя навіны:

  • Палепшана кіраванне праграмнымі асяродкамі. На змену камандзе "guix environment" прыйшла новая каманда "guix shell", якая дазваляе не толькі фармаваць зборачныя асяроддзі для распрацоўнікаў, але і выкарыстоўвацца асяроддзі для азнаямлення з праграмамі без адлюстравання ў профілі і без выканання "guix install". Напрыклад, для загрузкі і запуску гульні supertuxkart можна выканаць "guix shell supertuxkart - supertuxkart". Пасля загрузкі пакет будзе захаваны ў кэшы і наступны запуск не запатрабуе яго паўторнага вымання.

    Для спрашчэння фармаванняў асяроддзяў для распрацоўнікаў у «guix shell» прадстаўлена падтрымка файлаў guix.scm і manifest.scm з апісаннем складу асяроддзя (для генерацыі файлаў можа выкарыстоўвацца опцыя «—export-manifest»). Для стварэння кантэйнераў, у якіх эмулюецца класічная іерархія сістэмных каталогаў, у "guix shell" прапанаваны опцыі "-container -emulate-fhs".

  • Дададзена каманда "guix home" для кіравання хатнім асяроддзем. Guix дазваляе вызначыць усе кампаненты хатняга асяроддзя, уключаючы пакеты, сэрвісы і якія пачынаюцца з кропкі файлы. Пры дапамозе каманды "guix home" асобнікі апісанага хатняга асяроддзя могуць быць узноўлены ў каталогу $HOME або ў кантэйнеры, напрыклад, для пераносу свайго асяроддзя на новы кампутар.
  • У каманду "guix pack" дададзена опцыя "-f deb" для стварэння асобных deb-пакетаў, якія могуць быць усталяваныя ў Debian.
  • Для стварэння розных тыпаў сістэмных выяў (raw, QCOW2, ISO8660 CD/DVD, Docker і WSL2) прапанавана ўніверсальная каманда "guix system image", якая дазваляе вызначыць тып сховішчы, часткі і аперацыйную сістэму для стваранай выявы.
  • У каманды для зборкі пакетаў дададзена опцыя "-tune", якая дазваляе паказаць мікраархітэктуру працэсара, для якой будуць уключаны спецыфічныя аптымізацыі (напрыклад, на новых CPU AMD і Intel могуць быць задзейнічаны SIMD-інструкцыі AVX-512).
  • Ва ўсталёўніку рэалізаваны механізм для аўтаматычнага захавання важнай адладкавай інфармацыі ў выпадку аварыйнага завяршэння ўсталёўкі.
  • Скарочаны час запуску прыкладанняў, дзякуючы задзейнічанню кэша пры дынамічным звязванні, які дазваляе скараціць зварот да сістэмных выклікаў stat і open пры пошуку бібліятэк.
  • Задзейнічаны новы выпуск сістэмы ініцыялізацыі GNU Shepherd 0.9, у якім рэалізавана канцэпцыя часавых сэрвісаў (transient) і з'явілася магчымасць стварэння сэрвісаў, якія актывуюцца пры сеткавай актыўнасці (у стылі systemd socket activation).
  • Дададзены новы інтэрфейс для задання памеру часткі падпампоўкі ў канфігурацыі аперацыйнай сістэмы.
  • Перароблены інтэрфейс для задання статычнай сеткавай канфігурацыі, у якім зараз прапануецца дэкларатыўны аналог налад у стылі каманды ip.
  • Дададзеныя 15 новых сістэмных сэрвісаў, у тым ліку Jami, Samba, fail2ban і Gitile.
  • Запушчаны сайт packages.guix.gnu.org для навігацыі па пакетах.
  • Абноўлены версіі праграм у 6573 пакетах, дададзена 5311 новых пакетаў. Сярод іншага абноўлены версіі GNOME 42, Qt 6, GCC 12.2.0, Glibc 2.33, Xfce 4.16, Linux-libre 6.0.10, LibreOffice 7.4.3.2, Emacs 28.2. Выдалена больш за 500 пакетаў, якія выкарыстоўваюць Python 2.

Даступны пакетны мэнэджар GNU Guix 1.4 і дыстрыбутыў на яго аснове

Нагадаем, што пакетны мэнэджар GNU Guix заснаваны на напрацоўках праекту Nix і акрамя тыповых функцый кіравання пакетамі падтрымлівае такія магчымасці, як выкананне транзакцыйных абнаўленняў, магчымасць адкату абнаўленняў, праца без атрымання прывілеяў суперкарыстача, падтрымка прывязаных да асобных карыстачоў профіляў, магчымасць адначасовай усталёўкі некалькіх версій адной праграмы, сродкі ўборкі смецця (выяўленне і выдаленне невыкарыстоўваных версій пакетаў). Для вызначэння сцэнарыяў зборкі прыкладанняў і правілаў фарміравання пакетаў прапануецца выкарыстоўваць спецыялізаваную высокаўзроўневую прадметна-арыентаваную мову і кампаненты Guile Scheme API, якія дазваляюць выконваць усе аперацыі па кіраванні пакетамі на функцыянальнай мове праграмавання Scheme.

Падтрымліваецца магчымасць выкарыстання пакетаў, падрыхтаваных для пакетнага мэнэджара Nix і размешчаных у рэпазітары Nixpkgs. Акрамя аперацый з пакетамі магчыма стварэнне сцэнарыяў для кіравання канфігурацыяй дадаткаў. Пры зборцы пакета аўтаматычна загружаюцца і збіраюцца ўсе злучаныя з ім залежнасці. Магчыма як загрузка гатовых бінарных пакетаў з рэпазітара, так і зборка з зыходных тэкстаў з усімі залежнасцямі. Рэалізаваны сродкі для падтрымання версій устаноўленых праграм у актуальным стане праз арганізацыю ўстаноўкі абнаўленняў са знешняга рэпазітара.

Зборачнае асяроддзе для пакетаў фармуецца ў выглядзе кантэйнера, які змяшчае ўсе неабходныя для працы прыкладанняў кампаненты, што дазваляе сфармаваць набор пакетаў, здольны працаваць без аглядкі на склад базавага сістэмнага асяроддзя дыстрыбутыва, у якім Guix выкарыстоўваецца ў якасці надбудовы. Паміж пакетамі Guix магчыма вызначэнне залежнасцяў, пры гэтым для пошуку наяўнасці ўжо ўсталяваных залежнасцяў выкарыстоўваецца сканаванне хэшаў-ідэнтыфікатараў у дырэкторыі ўсталяваных пакетаў. Пакеты ўстанаўліваюцца ў асобнае дрэва дырэкторый або паддырэкторыю ў каталогу карыстальніка, што дазваляе забяспечыць яго паралельнае суіснаванне з іншымі пакетнымі мэнэджэрамі і забяспечыць падтрымку шырокага спектра існуючых дыстрыбутываў. Напрыклад, пакет усталёўваецца як /nix/store/452a5978f3b1b426064a2b64a0c6f41-firefox-108.0.1/, дзе «452a59…» з'яўляецца ўнікальным ідэнтыфікатарам пакета, выкарыстоўваным для кантролю залежнасцяў.

Дыстрыбутыў уключае толькі вольныя кампаненты і пастаўляецца з ядром GNU Linux-Libre, вычышчаным ад нявольных элементаў бінарных прашывак. Для зборкі прымяняецца GCC 12.2. У якасці сістэмы ініцыялізацыі выкарыстоўваецца сэрвісны мэнэджар GNU Shepherd (былы dmd), які развіваецца як альтэрнатыва SysV-init з падтрымкай залежнасцяў. Кіраўнік дэман і ўтыліты Shepherd напісаны на мове Guile (адна з рэалізацый мовы Scheme), які таксама выкарыстоўваецца і для вызначэння параметраў запуску сэрвісаў. Базавая выява падтрымлівае працу ў кансольным рэжыме, але для ўсталёўкі падрыхтавана 20526 гатовых пакетаў, сярод якіх і кампаненты графічнага стэка на базе X.Org, аконныя мэнэджары dwm і ratpoison, працоўныя сталы GNOME і Xfce, а таксама падборка графічных прыкладанняў.

Крыніца: opennet.ru

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