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