Jump to content

Nix ecosystem/ru: Difference between revisions

From NixOS Wiki
Unabomberlive (talk | contribs)
Created page with "Кроме того, существует множество других applications ('''''Extended Nix Ecosystem)''''', разработанных сообществом Nix, использующих и поддерживающих эти основные технологии."
FuzzyBot (talk | contribs)
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 Nix|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:
== Официальная экосистема ==
== Официальная экосистема ==


<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
{| class="wikitable"
|+ Core Components of the Nix Ecosystem
|+ Основные компоненты экосистемы Nix
|-
|-
! Component
! Компонент
! Manual
! Руководство
! Description
! Описание
! Use
! Используйте
! License
! Лицензия
|-  
|-  
| [[NixOS]]
| [[NixOS]]
| [https://nixos.org/nixos/manual/ NixOS Manual]
| [https://nixos.org/nixos/manual/ NixOS Manual]
| A Linux distribution with ''all'' components built by Nix, and thus supporting reproducible and declarative system-wide configuration management as well as atomic upgrades and rollbacks.  
| Дистрибутив Linux со ''всеми'' компонентами, собранными Nix, и, таким образом, поддерживающий воспроизводимое и декларативное управление конфигурацией всей системы, а также атомарное обновление и откат.  
| Declaratively configure desktops, servers & clusters
| Декларативная конфигурация настольных компьютеров, серверов и кластеров
| MIT
| MIT
|-
|-
| [[Nixpkgs]]
| [[Nixpkgs]]
| [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual]
| [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual]
| The largest community maintained Nix package and NixOS module repository; standard releases of NixOS are hosted here.
| Крупнейший поддерживаемый сообществом репозиторий пакетов Nix и модулей NixOS; здесь размещаются стандартные выпуски NixOS.
| Share Nix packages & NixOS modules
| Распространение пакетов Nix и модулей NixOS
| MIT
| MIT
|-
|-
| [[Hydra]]
| [[Hydra]]
| [https://nixos.org/hydra/manual/ Hydra Manual]
| [https://nixos.org/hydra/manual/ Hydra Manual]
| A Nix based continuous build system.
| Система непрерывной сборки на базе Nix.
| CI build farms
| Фермы сборки CI
| GPL-3.0
| GPL-3.0
|-
|-
| [[Nix]]
| [[Nix]]
| [https://nixos.org/nix/manual/ Nix Manual]
| [https://nixos.org/nix/manual/ Nix Manual]
| A package manager that parses Nix expressions specifying reproducible build, putting the result in a store address with a hash of the dependency tree, sidestepping dependency hell and supporting multiversion installs and rollbacks.
| Менеджер пакетов, который анализирует выражения Nix, указывающие на воспроизводимую сборку, помещая результат в адрес хранилища с хэшем дерева зависимостей, обходя ад зависимостей и поддерживая многоверсионную установку и откат.
| Reproducible builds & package management in Linux & Darwin
| Воспроизводимые сборки и управление пакетами в Linux и Darwin
| LGPL-2.1
| LGPL-2.1
|}
|}  
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
{| style="max-width: 36rem; margin: auto;"
{| style="max-width: 36rem; margin: auto;"
|+'''The NixOS core ecosystem stack'''
|+'''Основной стек экосистемы 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>
A Linux distribution and configuration system built using Nixpkgs
Дистрибутив 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>
A large, community-maintained repository of packages
Большой, поддерживаемый сообществом репозиторий пакетов
|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>
A continuous build system built on Nix
Система непрерывной сборки, построенная на базе 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>
A pure and functional build system
Чистая и функциональная система сборки
|}
|}
</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]]
</div>

Latest revision as of 21:51, 28 August 2025

Экосистема 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.

  • 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.

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