История изменений
Исправление loz, (текущая версия) :
Дело вкуса это «стандартные» дистрибутивы. В них плюс-минус все происходит одинаково и имеет одинаковые проблемы, разве что названия команд отличаются.
В NixOS два кардинальных отличия:
1) Функциональный пакетный менеджер Nix. Функциональный в том смысле, что проводятся аналогии с функциональным программированием - ФС <-> Память, Пакет <-> Функция (сборки пакета). То есть файловая система (точнее говоря ее часть работающая с пакетами, /nix) неизменяемая (в прямом смысле - она монтируется в read-only), а все пакеты устанавливаются в полностью уникальные пути (sha1 от _всех_ входных данных сборки). Это позволяет иметь в системе любое количество версий/вариантов (всмысле собранных с разными опциями ./configure) любых пакетов, и никаких блокировок, никаких несовместимостей, никакого влияния на что-то вне своей личной папочки. Его, кстати можно использовать отдельно от NixOS, в твоем любимомо дистре (я еще на убунточке начал его юзать активно), и на макоси, и даже для винды были сборочки, но похоже не нужны оказались.
2) Функциональное развертывание системы (это название я только что придумал). Суть в том, что _вся_ конфигурация системы полностью и однозначно выводится из одного файла (/etc/nixos/configuration.nix), в системе будет ровно то что там написано, и не будет ничего из того что там не написано. Не трудно догадаться, что для воспроизведения точной копии системы надо лишь перенести этот файлик на другой комп. Кроме этого, на каждое изменение в этой конфигурации создается запись в истории, позволяющая в случае необходимости откатиться ровно на это состояние (раз вся конфигурация в одном файле, это делается элементарно), сложность отката на любую конфигурацию в истории, кстати, O(1).
Вот это вкратце основы, еще там для билд ферм есть возможности, массового развертывания серверов и прочего, тоже заруливающего всякие chief и puppet.
Исправление loz, :
Дело вкуса это «стандартные» дистрибутивы. В них плюс-минус все происходит одинаково и имеет одинаковые проблемы, разве что названия команд отличаются.
В NixOS два кардинальных отличия:
1) Функциональный пакетный менеджер Nix. Функциональный в том смысле, что проводятся аналогии с функциональный программированием - ФС <-> Память, Пакет <-> Функция (сборки пакета). То есть файловая система (точнее говоря ее часть работающая с пакетами, /nix) неизменяемая (в прямом смысле - она монтируется в read-only), а все пакеты устанавливаются в полностью уникальные пути (sha1 от _всех_ входных данных сборки). Это позволяет иметь в системе любое количество версий/вариантов (всмысле собранных с разными опциями ./configure) любых пакетов, и никаких блокировок, никаких несовместимостей, никакого влияния на что-то вне своей личной папочки. Его, кстати можно использовать отдельно от NixOS, в твоем любимомо дистре (я еще на убунточке начал его юзать активно), и на макоси, и даже для винды были сборочки, но похоже не нужны оказались.
2) Функциональное развертывание системы (это название я только что придумал). Суть в том, что _вся_ конфигурация системы полностью и однозначно выводится из одного файла (/etc/nixos/configuration.nix), в системе будет ровно то что там написано, и не будет ничего из того что там не написано. Не трудно догадаться, что для воспроизведения точной копии системы надо лишь перенести этот файлик на другой комп. Кроме этого, на каждое изменение в этой конфигурации создается запись в истории, позволяющая в случае необходимости откатиться ровно на это состояние (раз вся конфигурация в одном файле, это делается элементарно), сложность отката на любую конфигурацию в истории, кстати, O(1).
Вот это вкратце основы, еще там для билд ферм есть возможности, массового развертывания серверов и прочего, тоже заруливающего всякие chief и puppet.
Исходная версия loz, :
Дело вкуса это «стандартные» дистрибутивы. В них плюс-минус все происходит одинаково и имеет одинаковые проблемы, разве что названия команд отличаются.
В NixOS два кардинальных отличия:
1) Функциональный пакетный менеджер Nix. Функциональный в том смысле, что проводятся аналогии с функциональный программированием - ФС <-> Память, Пакет <-> Функция (сборки пакета). То есть файловая система (точнее говоря ее часть работающая с пакетами, /nix) неизменяемая (в прямом смысле - она монтируется в read-only), а все пакеты устанавливаются в полностью уникальные пути (sha1 от _всех_ входных данных сборки). Это позволяет иметь в системе любое количество версий/вариантов (всмысле собранных с разными опциями ./configure) любых пакетов, и никаких блокировок, никаких несовместимостей, никакого влияния на что-то вне своей личной папочки.
2) Функциональное развертывание системы (это название я только что придумал). Суть в том, что _вся_ конфигурация системы полностью и однозначно выводится из одного файла (/etc/nixos/configuration.nix), в системе будет ровно то что там написано, и не будет ничего из того что там не написано. Не трудно догадаться, что для воспроизведения точной копии системы надо лишь перенести этот файлик на другой комп. Кроме этого, на каждое изменение в этой конфигурации создается запись в истории, позволяющая в случае необходимости откатиться ровно на это состояние (раз вся конфигурация в одном файле, это делается элементарно), сложность отката на любую конфигурацию в истории, кстати, O(1).
Вот это вкратце основы, еще там для билд ферм есть возможности, массового развертывания серверов и прочего, тоже заруливающего всякие chief и puppet.