@kurator88@mastodon.social вроде того. Guix это дистрибутив линукса, построенный вокруг пакетного менеджера с таким же названием. Основная особенность -- реализует т.н. "функциональное" управление пакетами, то есть:
- обычный пакетный менеджер меняет "глобальное состояние системы" -- раскидывает какие-то бинарники по каким-то стандартным путям. Такой процесс необратим и если в процессе что-то сломается - кирдык.
- в гиксе (и nix, который это придумал) пакет рассматривается как "функция", аргументы которой --- зависимости пакета и система сборки. Результат этой функции -- собранный бинарник и всякий хлам к нему (иконки, ман-страницы, прочая ерунда) -- кешируется в "хранилище". Поскольку программы не раскидываются по стандартным путям, гикс дальше манипулирует символическими ссылками и дописывает всякого в PATH чтобы они стали доступны пользователю. В итоге, получается довольно удобно: поскольку единственное "деструктивное" действие при установке пакета -- это переподвешивание символических ссылок, можно одной командой вернуть всё как было. К тому же, поскольку пакеты полностью определяются своими зависимостями, на разных машинах они соберутся абсолютно одинаково. Это удобно например в науке -- создавать воспроизводимые окружения.
Как игрушка -- классный, потому описания пакета несложные и легко правятся. Допустим, есть такой просмотрщик пдфок zathura. В гиксе его собрали без поддержки synctex (это чтобы прыгать между пдфкой и теховским исходником туда-сюда). Мне он нужен, и я скармливаю гиксу вот такое описание затуры с синктехом:
(define-public zathura-w/synctex
(package
(inherit zathura)
(name "zathura-w-synctex")
(inputs
(list sqlite
texlive-bin))))
и всё, победа. Этот пакет поставленный гиксом будет такой же частью системы как и всё остальное, а не как make install сбоку пришлёпка. Или, например, хочется мне попробовать самую свежую версию какой-нибудь проги --- проверить, исправили ли там баг, или надо идти плакать в issue tracker:
guix shell waybar --with-source=waybar@0.9.13=https://github.com/Alexays/Waybar/archive/refs/tags/0.9.13.tar.gz
.. тут сразу же собирается нужная версия, создаётся одноразовое окружение с ней и можно идти тыкать.
@ludivokrug@udongein.xyz
@larixmar @ludivokrug звучит классно, осталось понять - достаточно ли я старый для этого или ещё моорд душой и готов на эксперименты.
Сегодня вот буквально к apt прикрутил nala ui и уже радовался.
Спасибо за инфу буду думать