Nix ecosystem/zh-cn: Difference between revisions

From NixOS Wiki
Weijia (talk | contribs)
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
“Nix核心生态”是一组技术,旨在以可重复的方式构建、声明式配置和管理软件包和系统及其依赖项。它通过利用名为[[Overview of the Nix Language|Nix Language]]的动态、函数式和惰性求值的领域特定语言(DSL)将函数式编程范式从程序转换为系统来实现这一点,用于指定可重现的软件建构。
'''Nix 核心生态系统'''是一组技术的集合,旨在以可复现的方式构建、声明性地配置和管理软件包、系统及其依赖项。它通过将函数式编程范式从程序领域扩展到系统领域来实现这一目标,并使用一种动态的、函数式的、惰性求值的领域特定语言(DSL),即 [[Overview of the Nix Language|Nix 语言]],来指定可复现的构建过程。


此外,Nix社区开发了许多其他的 [[applications|应用程序]] (“Nix扩展生态”),这些应用程序使用并为核心技术提供支持。
此外,还有许多由 Nix 社区开发的[[applications|应用程序]]('''''Nix 扩展生态系统''''')利用并支持了这些核心技术。


<span id="Official_ecosystem"></span>
<span id="Official_ecosystem"></span>
== 官方生态 ==
== 官方生态系统 ==


{| class="wikitable"
{| class="wikitable"
|+ Nix 生态核心组件
|+ Nix 生态系统核心组件
|-
|-
! 组件
! 组件
Line 17: Line 17:
|-  
|-  
| [[NixOS]]
| [[NixOS]]
| [https://nixos.org/nixos/manual/ NixOS Manual]
| [https://nixos.org/nixos/manual/ NixOS 手册]
| 一个由 Nix 构建''所有''组件的 Linux 发行版,因此支持可重现的、声明式的全系统配置管理以及原子升级和回滚。
| 一个由 Nix 构建''所有''组件的 Linux 发行版,因此支持可重现的、声明式的全系统配置管理以及原子升级和回滚。
| 声明式配置桌面、服务器和集群。
| 声明式配置桌面、服务器和集群。
Line 23: Line 23:
|-
|-
| [[Nixpkgs]]
| [[Nixpkgs]]
| [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual]
| [https://nixos.org/nixpkgs/manual/ Nixpkgs 手册]
| 最大的社区维护的 Nix 软件包和 NixOS 模块仓库,NixOS的标准发行版也托管在这里。
| 最大的社区维护的 Nix 软件包和 NixOS 模块仓库,NixOS 的标准版本也托管在这里。
| 分享 Nix 软件包和 NixOS 模块
| 分享 Nix 软件包和 NixOS 模块
| MIT
| MIT
|-
|-
| [[Hydra]]
| [[Hydra]]
| [https://nixos.org/hydra/manual/ Hydra Manual]
| [https://nixos.org/hydra/manual/ Hydra 手册]
| 基于 Nix 的持续构建系统
| 基于 Nix 的持续构建系统
| CI build farms
| 持续构建集群
| GPL-3.0
| GPL-3.0
|-
|-
| [[Nix]]
| [[Nix]]
| [https://nixos.org/nix/manual/ Nix Manual]
| [https://nixos.org/nix/manual/ Nix 手册]
| 一款软件包管理器,能解析指定可重现构建的 Nix 表达式,并将结果与依赖关系树的哈希值一起放入存储地址,从而避免依赖关系地狱,并支持多版本安装和回滚。
| 一款软件包管理器,能解析指定可重现构建的 Nix 表达式,并将结果与依赖关系树的哈希值一起放入存储地址,从而避免依赖关系地狱,并支持多版本安装和回滚。
| Linux 和 Darwin 中的可重现构建和软件包管理
| Linux 和 Darwin 中的可重现构建和软件包管理
Line 41: Line 41:
|}  
|}  


<div lang="en" dir="ltr" class="mw-content-ltr">
{| style="max-width: 36rem; margin: auto;"
{| style="max-width: 36rem; margin: auto;"
|+'''The NixOS core ecosystem stack'''
|+'''Nix 核心生态系统技术栈'''
|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
一个用 Nixpkgs 构建的 Linux 发行版和配置系统
!
!
|-
|-
|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>


== NixOS的使用方式 ==
== NixOS 的使用方式 ==
用户在自己的电脑上安装 NixOS 发行版,就像安装其他 Linux 发行版一样。阅读 https://search.nixos.org 和本维基来了解 Nixpgs 中的的软件包安装和配置选项。使用 Nix 语言在一个文本文件中,声明式的描述应安装哪些软件包以及如何配置系统。在终端运行两个命令行程序,来将系统转换到所描述的系统。像使用其他 Linux 系统一样使用该系统。
用户可以像安装其他 Linux 发行版一样,将 ''NixOS'' 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 ''Nixpkgs'' 中可安装的软件包和配置选项的信息。他们使用 ''Nix'' 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 Linux 系统一样使用该系统。


== NixOS 的开发 ==
== NixOS 的开发 ==
NixOS''的开发人员主要在''Nixpkgs''上工作,用''Nix''语言的文本文件描述软件包应该如何构建。经过同行评审后,这些修改将被整合到 “Nixpkgs ”中。其中一些软件包预先在''Hydra''上构建,以减少''NixOS''用户的更新时间。
''NixOS'' 的开发人员主要在 ''Nixpkgs'' 上工作,用 ''Nix'' 语言的文本文件描述软件包应该如何构建。经过同行评审后,这些修改将被整合到 ''Nixpkgs'' 中。其中一些软件包预先在 ''Hydra'' 上构建,以减少 ''NixOS'' 用户的更新时间。





Latest revision as of 23:20, 6 December 2024

Nix 核心生态系统是一组技术的集合,旨在以可复现的方式构建、声明性地配置和管理软件包、系统及其依赖项。它通过将函数式编程范式从程序领域扩展到系统领域来实现这一目标,并使用一种动态的、函数式的、惰性求值的领域特定语言(DSL),即 Nix 语言,来指定可复现的构建过程。

此外,还有许多由 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
Nix 核心生态系统技术栈
NixOS

一个用 Nixpkgs 构建的 Linux 发行版和配置系统

Nixpkgs

一个巨大的,社区维护的软件仓库

Hydra

一个基于 Nix 的持续构建系统

Nix

一个纯函数式的构建系统

NixOS 的使用方式

用户可以像安装其他 Linux 发行版一样,将 NixOS 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 Nixpkgs 中可安装的软件包和配置选项的信息。他们使用 Nix 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 Linux 系统一样使用该系统。

NixOS 的开发

NixOS 的开发人员主要在 Nixpkgs 上工作,用 Nix 语言的文本文件描述软件包应该如何构建。经过同行评审后,这些修改将被整合到 Nixpkgs 中。其中一些软件包预先在 Hydra 上构建,以减少 NixOS 用户的更新时间。