Nix ecosystem/zh-cn: Difference between revisions

From NixOS Wiki
Mammogram (talk | contribs)
Created page with "Nix生态"
 
Weijia (talk | contribs)
No edit summary
 
(22 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div lang="en" dir="ltr" class="mw-content-ltr">
'''Nix 核心生态系统'''是一组技术的集合,旨在以可复现的方式构建、声明性地配置和管理软件包、系统及其依赖项。它通过将函数式编程范式从程序领域扩展到系统领域来实现这一目标,并使用一种动态的、函数式的、惰性求值的领域特定语言(DSL),即 [[Overview of the Nix Language|Nix 语言]],来指定可复现的构建过程。
The '''Core Nix Ecosystem''' is a collection of technologies designed to reproducibly build and declaratively configure and manage packages and systems as well as their dependencies. It achieves this by translating the functional paradigm from the program to the system domain by utilizing a dynamic, functional and lazy DSL called the [[Overview of the Nix Language|Nix Language]] for specifying reproducible builds.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
此外,还有许多由 Nix 社区开发的[[applications|应用程序]]'''''Nix 扩展生态系统''''')利用并支持了这些核心技术。
In addition there are many other [[applications]] ('''''Extended Nix Ecosystem)''''' developed by the Nix community, utilizing and supporting these core technologies.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Official_ecosystem"></span>
== Official ecosystem ==
== 官方生态系统 ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
{| class="wikitable"
|+ Core Components of the Nix Ecosystem
|+ Nix 生态系统核心组件
|-
|-
! Component
! 组件
! Manual
! 手册(Manual)
! Description
! 描述
! Use
! 用途
! License
! 协议
|-  
|-  
| [[NixOS]]
| [[NixOS]]
| [https://nixos.org/nixos/manual/ NixOS Manual]
| [https://nixos.org/nixos/manual/ NixOS 手册]
| 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.
| 一个由 Nix 构建''所有''组件的 Linux 发行版,因此支持可重现的、声明式的全系统配置管理以及原子升级和回滚。
| Declaratively configure desktops, servers & clusters
| 声明式配置桌面、服务器和集群。
| MIT
| MIT
|-
|-
| [[Nixpkgs]]
| [[Nixpkgs]]
| [https://nixos.org/nixpkgs/manual/ Nixpkgs Manual]
| [https://nixos.org/nixpkgs/manual/ Nixpkgs 手册]
| 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 手册]
| A Nix based continuous build system.
| 基于 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 手册]
| 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">
{| 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>


<div lang="en" dir="ltr" class="mw-content-ltr">
== NixOS 的使用方式 ==
== Usage of NixOS ==
用户可以像安装其他 Linux 发行版一样,将 ''NixOS'' 发行版安装到他们的电脑上。他们通过 https://search.nixos.org 和本维基查阅有关 ''Nixpkgs'' 中可安装的软件包和配置选项的信息。他们使用 ''Nix'' 语言以声明式的方式,在一个文本文件中描述应该安装哪些软件包以及如何配置系统。然后,他们在终端中运行两个命令行程序,将系统转变为所描述的系统。此后,他们像使用任何其他 Linux 系统一样使用该系统。
Users install the ''NixOS'' distribution on their computers just as any other Linux distribution. They read about packages to install and configuration options in ''Nixpgs'' via https://search.nixos.org and this wiki. They use the ''Nix'' language to declaratively describe in a text file what software packages should be installed and how the system should be configured. They run 2 command line programs in a terminal to transform the system into the described system. They use the system as any other Linux system.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
== NixOS 的开发 ==
== Development of NixOS ==
''NixOS'' 的开发人员主要在 ''Nixpkgs'' 上工作,用 ''Nix'' 语言的文本文件描述软件包应该如何构建。经过同行评审后,这些修改将被整合到 ''Nixpkgs'' 中。其中一些软件包预先在 ''Hydra'' 上构建,以减少 ''NixOS'' 用户的更新时间。
Developers of ''NixOS'' mainly work on ''Nixpkgs'' to describe in text files in ''Nix'' language how software packages should be build. After peer review these changes are integrated in ''Nixpkgs''. Some of these packages are pre built on ''Hydra'' to reduce the update time for ''NixOS'' users.
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Pedias]]
[[Category:Pedias]]
[[Category:NixOS]]
[[Category:NixOS]]
[[Category:nix]]
[[Category:nix]]
</div>

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 用户的更新时间。