Nix ecosystem/zh: Difference between revisions
Created page with "基于 Nix 的持续构建系统" Tags: Mobile edit Mobile web edit |
No edit summary Tags: Mobile edit Mobile web edit |
||
| (24 intermediate revisions by the same user not shown) | |||
| Line 8: | Line 8: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Nix 生态系统核心组件 | |+ Nix 生态系统核心组件 | ||
|- | |- | ||
| Line 17: | Line 16: | ||
! 协议 | ! 协议 | ||
|- | |- | ||
| [[NixOS]] | | [[Special:MyLanguage/NixOS|NixOS]] | ||
| [https://nixos.org/nixos/manual/ NixOS 手册] | | [https://nixos.org/nixos/manual/ NixOS 手册] | ||
| 一个由 Nix 构建''所有''组件的 Linux 发行版,因此支持可重现的、声明式的全系统配置管理以及原子升级和回滚。 | | 一个由 Nix 构建''所有''组件的 Linux 发行版,因此支持可重现的、声明式的全系统配置管理以及原子升级和回滚。 | ||
| Line 23: | Line 22: | ||
| MIT | | MIT | ||
|- | |- | ||
| [[Nixpkgs]] | | [[Special:MyLanguage/Nixpkgs|Nixpkgs]] | ||
| [https://nixos.org/nixpkgs/manual/ Nixpkgs 手册] | | [https://nixos.org/nixpkgs/manual/ Nixpkgs 手册] | ||
| 最大的社区维护的 Nix 软件包和 NixOS 模块仓库,NixOS 的标准版本也托管在这里。 | | 最大的社区维护的 Nix 软件包和 NixOS 模块仓库,NixOS 的标准版本也托管在这里。 | ||
| Line 29: | Line 28: | ||
| MIT | | MIT | ||
|- | |- | ||
| [[Hydra]] | | [[Special:MyLanguage/Hydra|Hydra]] | ||
| [https://nixos.org/hydra/manual/ Hydra 手册] | | [https://nixos.org/hydra/manual/ Hydra 手册] | ||
| 基于 Nix 的持续构建系统 | | 基于 Nix 的持续构建系统 | ||
| Line 35: | Line 34: | ||
| GPL-3.0 | | GPL-3.0 | ||
|- | |- | ||
| [[Nix]] | | [[Special:MyLanguage/Nix|Nix]] | ||
| [https://nixos.org/nix/manual/ Nix 手册] | | [https://nixos.org/nix/manual/ Nix 手册] | ||
| 一款软件包管理器,能解析指定可重现构建的 Nix 表达式,并将结果与依赖关系树的哈希值一起放入存储地址,从而避免依赖关系地狱,并支持多版本安装和回滚。 | | 一款软件包管理器,能解析指定可重现构建的 Nix 表达式,并将结果与依赖关系树的哈希值一起放入存储地址,从而避免依赖关系地狱,并支持多版本安装和回滚。 | ||
| Linux 和 Darwin 中的可重现构建和软件包管理 | | Linux 和 Darwin 中的可重现构建和软件包管理 | ||
| LGPL-2.1 | | LGPL-2.1 | ||
|} | |} | ||
| Line 75: | Line 43: | ||
{| style="max-width: 36rem; margin: auto;" | {| style="max-width: 36rem; margin: auto;" | ||
|+ '''Nix 核心生态系统技术栈''' | |||
|+'''Nix 核心生态系统技术栈''' | |||
| style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); 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> | ||
一个用 Nixpkgs 构建的 Linux 发行版和配置系统。 | |||
|- | |- | ||
| style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); 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 var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); 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 var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%" colspan="2"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); 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> | ||
一个纯函数式的构建系统。 | |||
|} | |} | ||
<span id="Usage_of_NixOS"></span> | <span id="Usage_of_NixOS"></span> | ||
== NixOS 的使用方式 == | == NixOS 的使用方式 == | ||
用户可以像安装其他 Linux 发行版一样,将 ''NixOS'' 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 ''Nixpkgs'' 中可安装的软件包和配置选项的信息。他们使用 ''Nix'' 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 Linux 系统一样使用该系统。 | 用户可以像安装其他 Linux 发行版一样,将 ''NixOS'' 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 ''Nixpkgs'' 中可安装的软件包和配置选项的信息。他们使用 ''Nix'' 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 Linux 系统一样使用该系统。 | ||
<span id="Development_of_NixOS"></span> | <span id="Development_of_NixOS"></span> | ||
== NixOS 的开发 == | == NixOS 的开发 == | ||
''NixOS'' 的开发者主要工作在 ''Nixpkgs'' 上。''NixOS'' 本身的开发由三个主要领域组成,同时还有一些体量较小但同样重要的其他领域。主要领域包括打包、模块系统和文档。 | ''NixOS'' 的开发者主要工作在 ''Nixpkgs'' 上。''NixOS'' 本身的开发由三个主要领域组成,同时还有一些体量较小但同样重要的其他领域。主要领域包括打包、模块系统和文档。 | ||
* 打包工作在 ''Nixpkgs'' 中进行,并不仅限于 ''NixOS'' 或基于 Linux 的平台。那些不专属于 ''NixOS'' 的软件包(例如运行发行版本身所需的工具)的维护者通常会照顾多个平台,尽管这并非严格要求。 | * 打包工作在 ''Nixpkgs'' 中进行,并不仅限于 ''NixOS'' 或基于 Linux 的平台。那些不专属于 ''NixOS'' 的软件包(例如运行发行版本身所需的工具)的维护者通常会照顾多个平台,尽管这并非严格要求。 | ||
| Line 140: | Line 81: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ ''NixOS'' 开发的各种示例及相关链接 | |+ ''NixOS'' 开发的各种示例及相关链接 | ||
! 开发类型 !! 开发 | ! 开发类型 !! 开发所属 !! 示例 | ||
|- | |- | ||
| 平台无关的打包 || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/bf3287dac860542719fe7554e21e686108716879/pkgs/tools/misc/coreutils/default.nix coreutils 软件包], [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/stdenv ''stdenv'' 框架], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/applications/office/libreoffice/default.nix Libreoffice 软件包] | | 平台无关的打包 || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/bf3287dac860542719fe7554e21e686108716879/pkgs/tools/misc/coreutils/default.nix coreutils 软件包], [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/stdenv ''stdenv'' 框架], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/applications/office/libreoffice/default.nix Libreoffice 软件包] | ||
|- | |- | ||
| 平台无关的工具 || ''Nixpkgs'' 及其他多个仓库 || [https://github.com/NixOS/nix 上游/默认 Nix 实现 | | 平台无关的工具 || ''Nixpkgs'' 及其他多个仓库 || [https://github.com/NixOS/nix 上游/默认 Nix 实现(CppNix)], [https://github.com/NixOS/hydra ''Hydra'' 源代码], [https://github.com/NixOS/nixpkgs-merge-bot ''Nixpkgs'' 合并机器人] | ||
|- | |- | ||
| ''NixOS'' 工具 || 主要是 ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/by-name/ni/nixos-rebuild-ng nixos-rebuild-ng 源代码], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix ''NixOS'' 安装映像] | | ''NixOS'' 工具 || 主要是 ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/by-name/ni/nixos-rebuild-ng nixos-rebuild-ng 源代码], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix ''NixOS'' 安装映像] | ||
|- | |- | ||
| ''NixOS'' 模块系统 || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/display-managers/default.nix 显示管理器配置], [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/databases/mysql.nix | | ''NixOS'' 模块系统 || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/display-managers/default.nix 显示管理器配置], [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/databases/mysql.nix(及其衍生)数据库配置] | ||
|- | |- | ||
| 基础设施 || || [https://github.com/NixOS/nixos-wiki-infra 本维基的基础设施], [https://github.com/NixOS/infra ''NixOS'' 基础设施] | | 基础设施 || || [https://github.com/NixOS/nixos-wiki-infra 本维基的基础设施], [https://github.com/NixOS/infra ''NixOS'' 基础设施] | ||
| Line 158: | Line 98: | ||
| 技术组织 || || [https://github.com/NixOS/nixpkgs/issues/390768 ''NixOS'' RelEng], [https://github.com/NixOS/rfcs/ ''Nix'' 和 ''NixOS'' RFC] | | 技术组织 || || [https://github.com/NixOS/nixpkgs/issues/390768 ''NixOS'' RelEng], [https://github.com/NixOS/rfcs/ ''Nix'' 和 ''NixOS'' RFC] | ||
|- | |- | ||
| 其他 || || [https://github.com/NixOS/nixos-artwork ''NixOS'' artwork], [https://discourse.nixos.org/ ''NixOS''(及相关)讨论区], [https://github.com/NixOS/foundation ''NixOS 基金会''] | | 其他 || || [https://github.com/NixOS/nixos-artwork ''NixOS'' artwork], [https://discourse.nixos.org/ ''NixOS''(及相关)讨论区], [https://github.com/NixOS/foundation ''NixOS 基金会''] | ||
|} | |} | ||