Nix ecosystem/zh: Difference between revisions
Appearance
Created page with "Category:Pedias Category:NixOS Category:nix" |
Updating to match new version of source page |
||
| Line 41: | Line 41: | ||
|} | |} | ||
<div class="mw-translate-fuzzy"> | |||
{| style="max-width: 36rem; margin: auto;" | {| style="max-width: 36rem; margin: auto;" | ||
|+'''Nix 核心生态系统技术栈''' | |+'''Nix 核心生态系统技术栈''' | ||
| Line 59: | Line 60: | ||
一个纯函数式的构建系统 | 一个纯函数式的构建系统 | ||
|} | |} | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
== NixOS 的使用方式 == | == NixOS 的使用方式 == | ||
用户可以像安装其他 Linux 发行版一样,将 ''NixOS'' 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 ''Nixpkgs'' 中可安装的软件包和配置选项的信息。他们使用 ''Nix'' 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 Linux 系统一样使用该系统。 | 用户可以像安装其他 Linux 发行版一样,将 ''NixOS'' 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 ''Nixpkgs'' 中可安装的软件包和配置选项的信息。他们使用 ''Nix'' 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 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"> | |||
{| 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]] | ||
Revision as of 19:50, 28 August 2025
Nix 核心生態系統是一組技術的集合,旨在以可復現的方式構建、聲明性地配置和管理軟體包、系統及其依賴項。它通過將函數式編程範式從程序領域擴展到系統領域來實現這一目標,並使用一種動態的、函數式的、惰性求值的領域特定語言(DSL),即 Nix 語言,來指定可復現的構建過程。
此外,還有許多由 Nix 社區開發的應用程式(Nix 擴展生態系統)利用並支持了這些核心技術。
官方生態系統
| 組件 | 手冊(Manual) | 描述 | 用途 | 協議 |
|---|---|---|---|---|
| NixOS | NixOS 手冊 | 一個由 Nix 構建所有組件的 Linux 發行版,因此支持可重現的、聲明式的全系統配置管理以及原子升級和回滾。 | 聲明式配置桌面、伺服器和集群。 | MIT |
| Nixpkgs | Nixpkgs 手冊 | 最大的社區維護的 Nix 軟體包和 NixOS 模塊倉庫,NixOS 的標準版本也託管在這裡。 | 分享 Nix 軟體包和 NixOS 模塊 | MIT |
| Hydra | Hydra 手冊 | 基於 Nix 的持續構建系統 | 持續構建集群 | GPL-3.0 |
| Nix | Nix 手冊 | 一款軟體包管理器,能解析指定可重現構建的 Nix 表達式,並將結果與依賴關係樹的哈希值一起放入存儲地址,從而避免依賴關係地獄,並支持多版本安裝和回滾。 | Linux 和 Darwin 中的可重現構建和軟體包管理 | LGPL-2.1 |
|
NixOS
一個用 Nixpkgs 構建的 Linux 發行版和配置系統 |
|
|
Nixpkgs
一個巨大的,社區維護的軟體倉庫 |
Hydra
一個基於 Nix 的持續構建系統 |
|
Nix
一個純函數式的構建系統 | |
NixOS 的使用方式
用戶可以像安裝其他 Linux 發行版一樣,將 NixOS 發行版安裝到他們的電腦上。他們通過 https://search.nixos.org 和本維基查閱有關 Nixpkgs 中可安裝的軟體包和配置選項的信息。他們使用 Nix 語言以聲明式的方式,在一個文本文件中描述應該安裝哪些軟體包以及如何配置系統。然後,他們在終端中運行兩個命令行程序,將系統轉變為所描述的系統。此後,他們像使用任何其他 Linux 系統一樣使用該系統。
NixOS 的開發
NixOS 的開發人員主要在 Nixpkgs 上工作,用 Nix 語言的文本文件描述軟體包應該如何構建。經過同行評審後,這些修改將被整合到 Nixpkgs 中。其中一些軟體包預先在 Hydra 上構建,以減少 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