Экосистема Nix

Revision as of 19:50, 28 August 2025 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

Экосистема Core Nix - это набор технологий, предназначенных для воспроизводимой сборки и декларативного конфигурирования и управления пакетами и системами, а также их зависимостями. Это достигается путем переноса функциональной парадигмы из области программ в область систем с помощью динамического, функционального и ленивого DSL, называемого Nix Language для определения воспроизводимых сборок

Кроме того, существует множество других applications (Extended Nix Ecosystem), разработанных сообществом Nix, использующих и поддерживающих эти основные технологии.

Официальная экосистема

Основные компоненты экосистемы Nix
Компонент Руководство Описание Используйте Лицензия
NixOS NixOS Manual Дистрибутив Linux со всеми компонентами, собранными Nix, и, таким образом, поддерживающий воспроизводимое и декларативное управление конфигурацией всей системы, а также атомарное обновление и откат. Декларативная конфигурация настольных компьютеров, серверов и кластеров MIT
Nixpkgs Nixpkgs Manual Крупнейший поддерживаемый сообществом репозиторий пакетов Nix и модулей NixOS; здесь размещаются стандартные выпуски NixOS. Распространение пакетов Nix и модулей NixOS MIT
Hydra Hydra Manual Система непрерывной сборки на базе Nix. Фермы сборки CI GPL-3.0
Nix Nix Manual Менеджер пакетов, который анализирует выражения Nix, указывающие на воспроизводимую сборку, помещая результат в адрес хранилища с хэшем дерева зависимостей, обходя ад зависимостей и поддерживая многоверсионную установку и откат. Воспроизводимые сборки и управление пакетами в Linux и Darwin LGPL-2.1
Основной стек экосистемы NixOS
NixOS

Дистрибутив Linux и система конфигурирования, построенная с использованием Nixpkgs

Nixpkgs

Большой, поддерживаемый сообществом репозиторий пакетов

Hydra

Система непрерывной сборки, построенная на базе Nix

Nix

Чистая и функциональная система сборки

Использование NixOS

Пользователи устанавливают дистрибутив NixOS на свои компьютеры так же, как и любой другой дистрибутив Linux. Они читают о пакетах для установки и параметрах конфигурации в Nixpkgs на сайте https://search.nixos.org и в этой вики. Они используют язык Nix, чтобы декларативно описать в текстовом файле, какие пакеты программ должны быть установлены и как должна быть настроена система. Они запускают 2 программы командной строки в терминале, чтобы преобразовать систему в описанную систему. Они используют систему как любую другую систему Linux.

Разработка NixOS

Разработчики NixOS в основном работают над Nixpkgs, чтобы описать в текстовых файлах на языке Nix, как должны быть собраны программные пакеты. После экспертной оценки эти изменения интегрируются в Nixpkgs. Некоторые из этих пакетов предварительно собираются на Hydra, чтобы сократить время обновления для пользователей NixOS.

Various examples of NixOS development along with links.
Type of development Location of Development Examples
Platform Agnostic Packaging Nixpkgs coreutils package, stdenv framework, Libreoffice package
Platform Agnostic Tooling Nixpkgs and various repositories upstream/default Nix implementation (CppNix), Hydra source code, Nixpkgs merge bot
NixOS Tooling mostly Nixpkgs nixos-rebuild-ng source code, NixOS Installation ISOs
NixOS Module System Nixpkgs Display Manager configuration, MySQL (and derivative) database configuration
Infrastructure Infrastructure for this Wiki, NixOS infra
Documentation This Wiki, stdenv documentation, NixOS IPv6 configuration (visible in the IPv6 section of the NixOS manual), Nixpkgs Contribution Guidelines
Tech Organisation NixOS RelEng, Nix and NixOS RFCs
Other NixOS artwork, NixOS (and related) discourse, NixOS Foundation