@kurator88@mastodon.social вроде того. Guix это дистрибутив линукса, построенный вокруг пакетного менеджера с таким же названием. Основная особенность -- реализует т.н. "функциональное" управление пакетами, то есть:
- обычный пакетный менеджер меняет "глобальное состояние системы" -- раскидывает какие-то бинарники по каким-то стандартным путям. Такой процесс необратим и если в процессе что-то сломается - кирдык.
- в гиксе (и nix, который это придумал) пакет рассматривается как "функция", аргументы которой --- зависимости пакета и система сборки. Результат этой функции -- собранный бинарник и всякий хлам к нему (иконки, ман-страницы, прочая ерунда) -- кешируется в "хранилище". Поскольку программы не раскидываются по стандартным путям, гикс дальше манипулирует символическими ссылками и дописывает всякого в PATH чтобы они стали доступны пользователю. В итоге, получается довольно удобно: поскольку единственное "деструктивное" действие при установке пакета -- это переподвешивание символических ссылок, можно одной командой вернуть всё как было. К тому же, поскольку пакеты полностью определяются своими зависимостями, на разных машинах они соберутся абсолютно одинаково. Это удобно например в науке -- создавать воспроизводимые окружения.
Как игрушка -- классный, потому описания пакета несложные и легко правятся. Допустим, есть такой просмотрщик пдфок zathura. В гиксе его собрали без поддержки synctex (это чтобы прыгать между пдфкой и теховским исходником туда-сюда). Мне он нужен, и я скармливаю гиксу вот такое описание затуры с синктехом:
и всё, победа. Этот пакет поставленный гиксом будет такой же частью системы как и всё остальное, а не как make install сбоку пришлёпка.
Или, например, хочется мне попробовать самую свежую версию какой-нибудь проги --- проверить, исправили ли там баг, или надо идти плакать в issue tracker:
@kurator88@mastodon.social вроде того. Guix это дистрибутив линукса, построенный вокруг пакетного менеджера с таким же названием. Основная особенность -- реализует т.н. "функциональное" управление пакетами, то есть:
- обычный пакетный менеджер меняет "глобальное состояние системы" -- раскидывает какие-то бинарники по каким-то стандартным путям. Такой процесс необратим и если в процессе что-то сломается - кирдык.
- в гиксе (и nix, который это придумал) пакет рассматривается как "функция", аргументы...
@kurator88@mastodon.social вроде того. Guix это дистрибутив линукса, построенный вокруг пакетного менеджера с таким же названием. Основная особенность -- реализует т.н. "функциональное" управление пакетами, то есть:
и всё, победа. Этот пакет поставленный гиксом будет такой же частью системы как и всё остальное, а не как make install сбоку пришлёпка.- обычный пакетный менеджер меняет "глобальное состояние системы" -- раскидывает какие-то бинарники по каким-то стандартным путям. Такой процесс необратим и если в процессе что-то сломается - кирдык.
- в гиксе (и nix, который это придумал) пакет рассматривается как "функция", аргументы которой --- зависимости пакета и система сборки. Результат этой функции -- собранный бинарник и всякий хлам к нему (иконки, ман-страницы, прочая ерунда) -- кешируется в "хранилище". Поскольку программы не раскидываются по стандартным путям, гикс дальше манипулирует символическими ссылками и дописывает всякого в PATH чтобы они стали доступны пользователю. В итоге, получается довольно удобно: поскольку единственное "деструктивное" действие при установке пакета -- это переподвешивание символических ссылок, можно одной командой вернуть всё как было. К тому же, поскольку пакеты полностью определяются своими зависимостями, на разных машинах они соберутся абсолютно одинаково. Это удобно например в науке -- создавать воспроизводимые окружения.
Как игрушка -- классный, потому описания пакета несложные и легко правятся. Допустим, есть такой просмотрщик пдфок zathura. В гиксе его собрали без поддержки synctex (это чтобы прыгать между пдфкой и теховским исходником туда-сюда). Мне он нужен, и я скармливаю гиксу вот такое описание затуры с синктехом:
Или, например, хочется мне попробовать самую свежую версию какой-нибудь проги --- проверить, исправили ли там баг, или надо идти плакать в issue tracker:
.. тут сразу же собирается нужная версия, создаётся одноразовое окружение с ней и можно идти тыкать.
@ludivokrug@udongein.xyz
@kurator88@mastodon.social вроде того. Guix это дистрибутив линукса, построенный вокруг пакетного менеджера с таким же названием. Основная особенность -- реализует т.н. "функциональное" управление пакетами, то есть:
- обычный пакетный менеджер меняет "глобальное состояние системы" -- раскидывает какие-то бинарники по каким-то стандартным путям. Такой процесс необратим и если в процессе что-то сломается - кирдык.
- в гиксе (и nix, который это придумал) пакет рассматривается как "функция", аргументы...