Nix ecosystem/ru: Difference between revisions
Created page with "Кроме того, существует множество других applications ('''''Extended Nix Ecosystem)''''', разработанных сообществом Nix, использующих и поддерживающих эти основные технологии." |
Updating to match new version of source page |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
Экосистема '''Core Nix''' - это набор технологий, предназначенных для воспроизводимой сборки и декларативного конфигурирования и управления пакетами и системами, а также их зависимостями. Это достигается путем переноса функциональной парадигмы из области программ в область систем с помощью динамического, функционального и ленивого DSL, называемого [[Overview of the Nix Language | Экосистема '''Core Nix''' - это набор технологий, предназначенных для воспроизводимой сборки и декларативного конфигурирования и управления пакетами и системами, а также их зависимостями. Это достигается путем переноса функциональной парадигмы из области программ в область систем с помощью динамического, функционального и ленивого DSL, называемого [[Overview of the Nix Language|Nix Language]] для определения воспроизводимых сборок | ||
Кроме того, существует множество других [[applications]] ('''''Extended Nix Ecosystem)''''', разработанных сообществом Nix, использующих и поддерживающих эти основные технологии. | Кроме того, существует множество других [[applications]] ('''''Extended Nix Ecosystem)''''', разработанных сообществом Nix, использующих и поддерживающих эти основные технологии. | ||
Line 7: | Line 7: | ||
== Официальная экосистема == | == Официальная экосистема == | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ Основные компоненты экосистемы Nix | ||
|- | |- | ||
! | ! Компонент | ||
! | ! Руководство | ||
! | ! Описание | ||
! | ! Используйте | ||
! | ! Лицензия | ||
|- | |- | ||
| [[NixOS]] | | [[NixOS]] | ||
| [https://nixos.org/nixos/manual/ NixOS Manual] | | [https://nixos.org/nixos/manual/ NixOS Manual] | ||
| | | Дистрибутив Linux со ''всеми'' компонентами, собранными Nix, и, таким образом, поддерживающий воспроизводимое и декларативное управление конфигурацией всей системы, а также атомарное обновление и откат. | ||
| | | Декларативная конфигурация настольных компьютеров, серверов и кластеров | ||
| MIT | | MIT | ||
|- | |- | ||
| [[Nixpkgs]] | | [[Nixpkgs]] | ||
| [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual] | | [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual] | ||
| | | Крупнейший поддерживаемый сообществом репозиторий пакетов Nix и модулей NixOS; здесь размещаются стандартные выпуски NixOS. | ||
| | | Распространение пакетов Nix и модулей NixOS | ||
| MIT | | MIT | ||
|- | |- | ||
| [[Hydra]] | | [[Hydra]] | ||
| [https://nixos.org/hydra/manual/ Hydra Manual] | | [https://nixos.org/hydra/manual/ Hydra Manual] | ||
| | | Система непрерывной сборки на базе Nix. | ||
| CI | | Фермы сборки CI | ||
| GPL-3.0 | | GPL-3.0 | ||
|- | |- | ||
| [[Nix]] | | [[Nix]] | ||
| [https://nixos.org/nix/manual/ Nix Manual] | | [https://nixos.org/nix/manual/ Nix Manual] | ||
| | | Менеджер пакетов, который анализирует выражения Nix, указывающие на воспроизводимую сборку, помещая результат в адрес хранилища с хэшем дерева зависимостей, обходя ад зависимостей и поддерживая многоверсионную установку и откат. | ||
| | | Воспроизводимые сборки и управление пакетами в Linux и Darwin | ||
| LGPL-2.1 | | LGPL-2.1 | ||
|} | |} | ||
<div | <div class="mw-translate-fuzzy"> | ||
{| style="max-width: 36rem; margin: auto;" | {| style="max-width: 36rem; margin: auto;" | ||
|+''' | |+'''Основной стек экосистемы NixOS''' | ||
|style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%"| | |style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%"| | ||
<div style="font-size: 1.3em; font-weight: bold">NixOS</div> | <div style="font-size: 1.3em; font-weight: bold">NixOS</div> | ||
Дистрибутив Linux и система конфигурирования, построенная с использованием Nixpkgs | |||
! | ! | ||
|- | |- | ||
|style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%"| | |style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%"| | ||
<div style="font-size: 1.3em; font-weight: bold">Nixpkgs</div> | <div style="font-size: 1.3em; font-weight: bold">Nixpkgs</div> | ||
Большой, поддерживаемый сообществом репозиторий пакетов | |||
|style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%"| | |style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%"| | ||
<div style="font-size: 1.3em; font-weight: bold">Hydra</div> | <div style="font-size: 1.3em; font-weight: bold">Hydra</div> | ||
Система непрерывной сборки, построенная на базе Nix | |||
|- | |- | ||
|style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%" colspan="2"| | |style="text-align: center; border: 1px solid #ddd; background: #fafafa; padding: 1.6rem" width="2%" colspan="2"| | ||
<div style="font-size: 1.3em; font-weight: bold">Nix</div> | <div style="font-size: 1.3em; font-weight: bold">Nix</div> | ||
Чистая и функциональная система сборки | |||
|} | |} | ||
</div> | </div> | ||
<div class="mw-translate-fuzzy"> | |||
== Использование NixOS == | == Использование NixOS == | ||
Пользователи устанавливают дистрибутив ''NixOS'' на свои компьютеры так же, как и любой другой дистрибутив Linux. Они читают о пакетах для установки и параметрах конфигурации в ''Nixpkgs'' на сайте https://search.nixos.org и в этой вики. Они используют язык ''Nix'', чтобы декларативно описать в текстовом файле, какие пакеты программ должны быть установлены и как должна быть настроена система. Они запускают 2 программы командной строки в терминале, чтобы преобразовать систему в описанную систему. Они используют систему как любую другую систему Linux. | Пользователи устанавливают дистрибутив ''NixOS'' на свои компьютеры так же, как и любой другой дистрибутив Linux. Они читают о пакетах для установки и параметрах конфигурации в ''Nixpkgs'' на сайте https://search.nixos.org и в этой вики. Они используют язык ''Nix'', чтобы декларативно описать в текстовом файле, какие пакеты программ должны быть установлены и как должна быть настроена система. Они запускают 2 программы командной строки в терминале, чтобы преобразовать систему в описанную систему. Они используют систему как любую другую систему Linux. | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
== Разработка NixOS == | == Разработка NixOS == | ||
Разработчики ''NixOS'' в основном работают над ''Nixpkgs'', чтобы описать в текстовых файлах на языке ''Nix'', как должны быть собраны программные пакеты. После экспертной оценки эти изменения интегрируются в ''Nixpkgs''. Некоторые из этих пакетов предварительно собираются на ''Hydra'', чтобы сократить время обновления для пользователей ''NixOS''. | Разработчики ''NixOS'' в основном работают над ''Nixpkgs'', чтобы описать в текстовых файлах на языке ''Nix'', как должны быть собраны программные пакеты. После экспертной оценки эти изменения интегрируются в ''Nixpkgs''. Некоторые из этих пакетов предварительно собираются на ''Hydra'', чтобы сократить время обновления для пользователей ''NixOS''. | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
* Packaging is done in ''Nixpkgs'' and is not exclusive to ''NixOS'' or even Linux-based platforms. Maintainers of packages which are not exclusive to ''NixOS'' (such as tooling required to run the distribution itself) usually take care of multiple platforms although not strictly required. | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
* The module system is the way in which services running on ''NixOS'' are primarily configured. This area stretches from "low-level" configuration such as ''systemd'' unit files or providing custom kernel configuration up to configuration file generation for specific services. The module system is the primary way for users to configure ''NixOS'', and lives in the <code>nixos/</code> subdirector of ''Nixpkgs''. | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
* Documentation is largely embedded in packaging and module system data, although free-standing markdown files are also contained in the ''Nixpkgs'' repository. Documentation also includes maintaining the website, Wiki, and other aspects of the wider ecosystem. The first two categories are almost exclusively ''Nix'' language code written in text files, while the latter is a mix of ''Nix'' code, markdown files, and various other formats. | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
All contributions to ''Nixpkgs'', regardless of whether they affect ''NixOS'' or not, are subject to peer review before being integrated into ''Nixpkgs''. Many packages alongside documentation and supplementary materials such as ISOs or tarballs are pre built on ''Hydra'' to reduce the update time for ''NixOS'' users. | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
Those three categories are largest by contribution volume, however many maintainers also engage in activities surrounding the NixOS foundation, maintaining the infrastructure on which website, ''Hydra'', and other tools run on, or developing tooling required for NixOS. | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
{| class="wikitable" | |||
|+ Various examples of ''NixOS'' development along with links. | |||
! Type of development !! Location of Development !! Examples | |||
|- | |||
| Platform Agnostic Packaging || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/bf3287dac860542719fe7554e21e686108716879/pkgs/tools/misc/coreutils/default.nix coreutils package], [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/stdenv ''stdenv'' framework], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/applications/office/libreoffice/default.nix Libreoffice package] | |||
|- | |||
| Platform Agnostic Tooling || ''Nixpkgs'' and various repositories || [https://github.com/NixOS/nix upstream/default Nix implementation (CppNix)], [https://github.com/NixOS/hydra ''Hydra'' source code], [https://github.com/NixOS/nixpkgs-merge-bot ''Nixpkgs'' merge bot] | |||
|- | |||
| ''NixOS'' Tooling || mostly ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/by-name/ni/nixos-rebuild-ng nixos-rebuild-ng source code], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix ''NixOS'' Installation ISOs] | |||
|- | |||
| ''NixOS'' Module System || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/display-managers/default.nix Display Manager configuration], [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/databases/mysql.nix MySQL (and derivative) database configuration] | |||
|- | |||
| Infrastructure || || [https://github.com/NixOS/nixos-wiki-infra Infrastructure for this Wiki], [https://github.com/NixOS/infra ''NixOS'' infra] | |||
|- | |||
| Documentation || || [https://wiki.nixos.org This Wiki], [https://github.com/NixOS/nixpkgs/blob/8d92119c540d78599ba208010c722a60958810f4/doc/stdenv/stdenv.chapter.md ''stdenv'' documentation], [https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/configuration/ipv6-config.section.md ''NixOS'' IPv6 configuration] (visible in the [https://nixos.org/manual/nixos/stable/#sec-ipv6 IPv6 section of the ''NixOS'' manual]), [https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md ''Nixpkgs'' Contribution Guidelines] | |||
|- | |||
| Tech Organisation || || [https://github.com/NixOS/nixpkgs/issues/390768 ''NixOS'' RelEng], [https://github.com/NixOS/rfcs/ ''Nix'' and ''NixOS'' RFCs] | |||
|- | |||
| Other || || [https://github.com/NixOS/nixos-artwork ''NixOS'' artwork], [https://discourse.nixos.org/ ''NixOS'' (and related) discourse], [https://github.com/NixOS/foundation ''NixOS Foundation''] | |||
|} | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
See also: [https://github.com/NixOS/org Nix organisation repository] | |||
</div> | |||
[[Category:Pedias]] | [[Category:Pedias]] | ||
[[Category:NixOS]] | [[Category:NixOS]] | ||
[[Category:nix]] | [[Category:nix]] | ||
Latest revision as of 21:51, 28 August 2025
Экосистема Core Nix - это набор технологий, предназначенных для воспроизводимой сборки и декларативного конфигурирования и управления пакетами и системами, а также их зависимостями. Это достигается путем переноса функциональной парадигмы из области программ в область систем с помощью динамического, функционального и ленивого DSL, называемого Nix Language для определения воспроизводимых сборок
Кроме того, существует множество других applications (Extended Nix Ecosystem), разработанных сообществом 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
Дистрибутив Linux и система конфигурирования, построенная с использованием Nixpkgs |
|
Nixpkgs
Большой, поддерживаемый сообществом репозиторий пакетов |
Hydra
Система непрерывной сборки, построенная на базе Nix |
Nix
Чистая и функциональная система сборки |
Использование NixOS
Пользователи устанавливают дистрибутив NixOS на свои компьютеры так же, как и любой другой дистрибутив Linux. Они читают о пакетах для установки и параметрах конфигурации в Nixpkgs на сайте https://search.nixos.org и в этой вики. Они используют язык Nix, чтобы декларативно описать в текстовом файле, какие пакеты программ должны быть установлены и как должна быть настроена система. Они запускают 2 программы командной строки в терминале, чтобы преобразовать систему в описанную систему. Они используют систему как любую другую систему Linux.
Разработка NixOS
Разработчики NixOS в основном работают над Nixpkgs, чтобы описать в текстовых файлах на языке Nix, как должны быть собраны программные пакеты. После экспертной оценки эти изменения интегрируются в Nixpkgs. Некоторые из этих пакетов предварительно собираются на Hydra, чтобы сократить время обновления для пользователей NixOS.
- Packaging is done in Nixpkgs and is not exclusive to NixOS or even Linux-based platforms. Maintainers of packages which are not exclusive to NixOS (such as tooling required to run the distribution itself) usually take care of multiple platforms although not strictly required.
- The module system is the way in which services running on NixOS are primarily configured. This area stretches from "low-level" configuration such as systemd unit files or providing custom kernel configuration up to configuration file generation for specific services. The module system is the primary way for users to configure NixOS, and lives in the
nixos/
subdirector of Nixpkgs.
- Documentation is largely embedded in packaging and module system data, although free-standing markdown files are also contained in the Nixpkgs repository. Documentation also includes maintaining the website, Wiki, and other aspects of the wider ecosystem. The first two categories are almost exclusively Nix language code written in text files, while the latter is a mix of Nix code, markdown files, and various other formats.
All contributions to Nixpkgs, regardless of whether they affect NixOS or not, are subject to peer review before being integrated into Nixpkgs. Many packages alongside documentation and supplementary materials such as ISOs or tarballs are pre built on Hydra to reduce the update time for NixOS users.
Those three categories are largest by contribution volume, however many maintainers also engage in activities surrounding the NixOS foundation, maintaining the infrastructure on which website, Hydra, and other tools run on, or developing tooling required for NixOS.
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 |
See also: Nix organisation repository