Сразу предупреждаю -- там в "знакомых" местах лежат только положеные по позиксу /bin/sh и /usr/bin/env, и те симлинки в /run/current-system/sw/bin, а оный /run/current-system кажет в /nix/store/9v25bkvvinjcjd4qmgx802m0nc9zadbv-nixos-system-bulldozer-17.03.git.0731068 (по крайней мере в настоящий момент на моем локалхосте).
Из плюшек -- zfs почти из коробки, хитрая команда nix-shell, которая умеет делать эфемерное окружение (`nix-shell -pA pkgs.chromium --run chromium` поставит/запустит/забудет о хромиуме сразу после выхода), а так же живое и активное community умеющее irc и принимать PRы на гитхабе без лишней бюрократии)
Потому и почти атомарные апдейты, обновление одного симлинка в tmpfs (с ребутом гарантировано атомарные) -- +список N последних конфиругаций в грубе -- можно вернуться в день когда все работало.
Два серьезных drawbacks -- произвольный скачаный линуксовый бинарник без танцев не запускается (при сборке пакетов им прописывается полный путь ld.so от того libc с которым оно собрано, +rpath так же "выпрямлен" -- впрочем для closed source есть почти готовые решения, которые подгоняются за минуту).
Второй -- когда инвалидируется что-то в корне графа пакетов (openssl, или еще хуже libc) -- протухают хеши у всех зависимых пакетов. Обычно такие изменения проходят staging ветку, чтобы CI успело собрать/закешировать все основное. Но иногда случается срочное security update, и все кто успел раньше CI страдают.
(no subject)
Date: 2016-10-20 14:40 (UTC)(no subject)
Date: 2016-10-20 15:17 (UTC)Из плюшек -- zfs почти из коробки, хитрая команда nix-shell, которая умеет делать эфемерное окружение (`nix-shell -pA pkgs.chromium --run chromium` поставит/запустит/забудет о хромиуме сразу после выхода), а так же живое и активное community умеющее irc и принимать PRы на гитхабе без лишней бюрократии)
Потому и почти атомарные апдейты, обновление одного симлинка в tmpfs (с ребутом гарантировано атомарные) -- +список N последних конфиругаций в грубе -- можно вернуться в день когда все работало.
Два серьезных drawbacks -- произвольный скачаный линуксовый бинарник без танцев не запускается (при сборке пакетов им прописывается полный путь ld.so от того libc с которым оно собрано, +rpath так же "выпрямлен" -- впрочем для closed source есть почти готовые решения, которые подгоняются за минуту).
Второй -- когда инвалидируется что-то в корне графа пакетов (openssl, или еще хуже libc) -- протухают хеши у всех зависимых пакетов. Обычно такие изменения проходят staging ветку, чтобы CI успело собрать/закешировать все основное. Но иногда случается срочное security update, и все кто успел раньше CI страдают.