NixOS/zh: Difference between revisions
Updating to match new version of source page |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
{{Expansion|reason=此篇文章需要是一个简单的入门介绍,因为它将是新用户在此处阅读的首批文章之一。因此,内容需要简化一些,更复杂的主题应转移到其他文章中。}} | {{Expansion|reason=此篇文章需要是一个简单的入门介绍,因为它将是新用户在此处阅读的首批文章之一。因此,内容需要简化一些,更复杂的主题应转移到其他文章中。}} | ||
[https://nixos.org/ NixOS] 是一个基于 [[Special:MyLanguage/Nix|Nix]] 包管理器与构建系统的 Linux 发行版。它支持[https://en.wikipedia.org/wiki/Declarative_programming 声明式]的系统级[https://en.wikipedia.org/wiki/Configuration_management 配置管理]以及[https://en.wikipedia.org/wiki/Atomicity_(database_systems) 原子化]升级和回滚,同时它仍支持[https://en.wikipedia.org/wiki/Imperative_programming 命令式]的包管理和用户管理。在 NixOS 中,发行版的所有组件 — 包括[https://en.wikipedia.org/wiki/Linux_kernel 系统内核]、已安装的[https://en.wikipedia.org/wiki/Package_manager 软件包]和系统配置文件 — 均由 [[Special:MyLanguage/Nix|Nix]] 从被称为 [[Special:MyLanguage/Nix Expression Language|Nix 表达式]] 的[[Wikipedia:Pure function|纯函数]]中构建。 | [https://nixos.org/ NixOS] 是一个基于 [[Special:MyLanguage/Nix|Nix]] 包管理器与构建系统的 Linux 发行版。它支持 [https://en.wikipedia.org/wiki/Declarative_programming 声明式] 的系统级 [https://en.wikipedia.org/wiki/Configuration_management 配置管理] 以及 [https://en.wikipedia.org/wiki/Atomicity_(database_systems) 原子化] 升级和回滚,同时它仍支持 [https://en.wikipedia.org/wiki/Imperative_programming 命令式] 的包管理和用户管理。在 NixOS 中,发行版的所有组件 — 包括 [https://en.wikipedia.org/wiki/Linux_kernel 系统内核]、已安装的 [https://en.wikipedia.org/wiki/Package_manager 软件包] 和系统配置文件 — 均由 [[Special:MyLanguage/Nix|Nix]] 从被称为 [[Special:MyLanguage/Nix Expression Language|Nix 表达式]] 的 [[Wikipedia:Pure function|纯函数]] 中构建。 | ||
由于 Nix 使用了[https://en.wikipedia.org/wiki/Executable 二进制]缓存机制,这便为面向二进制分发(如 Debian)和面向[https://en.wikipedia.org/wiki/Source_code 源码]分发(如 Gentoo)的方法提供了一种独特的折中方案。预编译的二进制程序被视作标准组件,在其无法获取时,自助编译的软件包与模块将被自动构建。 | 由于 Nix 使用了 [https://en.wikipedia.org/wiki/Executable 二进制] 缓存机制,这便为面向二进制分发(如 Debian)和面向 [https://en.wikipedia.org/wiki/Source_code 源码] 分发(如 Gentoo)的方法提供了一种独特的折中方案。预编译的二进制程序被视作标准组件,在其无法获取时,自助编译的软件包与模块将被自动构建。 | ||
NixOS 稳定版本每年发布两次(大约在五月底和十一月底)。NixOS 由 [https://edolstra.github.io/ Eelco Dolstra] 和 [https://en.wikipedia.org/wiki/Armijn_Hemel Armijn Hemel] 创建,并于 2003 年首次发布。目前由 [[Special:MyLanguage/Nix_Community#NixOS_Foundation|NixOS 基金会]] 管理下的社区开发与维护。 | NixOS 稳定版本每年发布两次(大约在五月底和十一月底)。NixOS 由 [https://edolstra.github.io/ Eelco Dolstra] 和 [https://en.wikipedia.org/wiki/Armijn_Hemel Armijn Hemel] 创建,并于 2003 年首次发布。目前由 [[Special:MyLanguage/Nix_Community#NixOS_Foundation|NixOS 基金会]] 管理下的社区开发与维护。 | ||
Line 14: | Line 14: | ||
完整的安装指南请参阅 [https://nixos.org/nixos/manual/index.html#ch-installation NixOS 手册的 Installation 章节]。此维基还包含替代或补充指南,例如 [[Special:MyLanguage/NixOS as a desktop|桌面设备上的 NixOS]]。 | 完整的安装指南请参阅 [https://nixos.org/nixos/manual/index.html#ch-installation NixOS 手册的 Installation 章节]。此维基还包含替代或补充指南,例如 [[Special:MyLanguage/NixOS as a desktop|桌面设备上的 NixOS]]。 | ||
大多数用户通过 [https://nixos.org/download/#nixos-iso 任一 ISO 镜像] 安装 NixOS。每个支持架构均有 “graphical”(图形化安装)和 “minimal”(最小化安装)两种 ISO 变体; | 大多数用户通过 [https://nixos.org/download/#nixos-iso 任一 ISO 镜像] 安装 NixOS。每个支持架构均有 “graphical”(图形化安装)和 “minimal”(最小化安装)两种 ISO 变体;图形化镜像适用于计划安装桌面环境的用户,而最小化镜像适用于计划将 NixOS 充当服务器或期望更小 ISO 镜像文件的用户。ISO 镜像为混合镜像,可以刻录到光盘介质或原封不动地复制到 USB 驱动器上并直接启动。请参阅安装指南以了解详情。 | ||
除了 ISO 镜像,[https://nixos.org/download/#nixos-iso 下载页面] 还提供了多种安装 NixOS 的替代方法。这些方法包括: | 除了 ISO 镜像,[https://nixos.org/download/#nixos-iso 下载页面] 还提供了多种安装 NixOS 的替代方法。这些方法包括: | ||
Line 42: | Line 42: | ||
{{Main|NixOS on ARM}} | {{Main|NixOS on ARM}} | ||
NixOS 不官方支持 ARM32 设备(例如 <code>armv6</code> 和 <code> | NixOS 不官方支持 ARM32 设备(例如 <code>armv6</code> 和 <code>armv7l</code>),不过对于其中部分设备,可能存在社区支持。 | ||
<span id="64-bit_ARM_architectures"></span> | <span id="64-bit_ARM_architectures"></span> | ||
Line 56: | Line 56: | ||
NixOS 对于 MIPS 架构的支持有限, Nixpkgs 中可能存在部分对于此架构的支持。但并未有官方支持。 | NixOS 对于 MIPS 架构的支持有限, Nixpkgs 中可能存在部分对于此架构的支持。但并未有官方支持。 | ||
< | <span id="RISC-V_architectures"></span> | ||
==== RISC-V | ==== RISC-V 架构 ==== | ||
{{Main|RISC-V}} | {{Main|RISC-V}} | ||
NixOS 不为 RISC-V 设备提供官方支持。不过,一些设备可能会受到社区支持。 | |||
NixOS | |||
<span id="Usage"></span> | <span id="Usage"></span> | ||
Line 118: | Line 115: | ||
=== Nix Store 的使用 === | === Nix Store 的使用 === | ||
新手的大多数困惑源于配置文件和所有已安装软件包均存储于只读的 <code>/nix/store</code> 目录树下这一事实。这实际上使得手动编辑系统配置变得不可能;所有配置更改必须通过编辑 <code>/etc/nixos/configuration.nix</code> 文件并运行 <code>nixos-rebuild switch</code> 后才可生效。NixOS 提供了[[Special:MyLanguage/NixOS_modules|模块系统]]以供编辑所有需要的配置。用户应在期望通过低层级的 NixOS 功能(如 activation scripts)手动添加文件或配置之前,首先使用[https://search.nixos.org/options 配置选项搜索工具]检查所需选项是否已存在。 | 新手的大多数困惑源于配置文件和所有已安装软件包均存储于只读的 <code>/nix/store</code> 目录树下这一事实。这实际上使得手动编辑系统配置变得不可能;所有配置更改必须通过编辑 <code>/etc/nixos/configuration.nix</code> 文件并运行 <code>nixos-rebuild switch</code> 后才可生效。NixOS 提供了 [[Special:MyLanguage/NixOS_modules|模块系统]] 以供编辑所有需要的配置。用户应在期望通过低层级的 NixOS 功能(如 activation scripts)手动添加文件或配置之前,首先使用 [https://search.nixos.org/options 配置选项搜索工具] 检查所需选项是否已存在。 | ||
系统的纯粹性(purity)使得系统配置的集中存储成为可能,而无需编辑多个文件。此配置方式可以根据需要进行分发或版本控制。它还提供了确定性:如果您提供相同的输入、相同版本的 Nixpkgs 和相同的 <code>/etc/nixos/configuration.nix</code> 文件,您将得到完全相同的系统状态。 | 系统的纯粹性(purity)使得系统配置的集中存储成为可能,而无需编辑多个文件。此配置方式可以根据需要进行分发或版本控制。它还提供了确定性:如果您提供相同的输入、相同版本的 Nixpkgs 和相同的 <code>/etc/nixos/configuration.nix</code> 文件,您将得到完全相同的系统状态。 | ||
Line 160: | Line 157: | ||
=== 世代 === | === 世代 === | ||
每当使用 <code>nixos-rebuild switch</code> 命令重构系统状态时,都将创建一个新的世代(generation)。您可以随时回滚到上一个世代,这在配置更改(或系统更新)被证明 | 每当使用 <code>nixos-rebuild switch</code> 命令重构系统状态时,都将创建一个新的世代(generation)。您可以随时回滚到上一个世代,这在配置更改(或系统更新)被证明造成破坏时非常有用。 | ||
您可以通过以下命令回滚: | 您可以通过以下命令回滚: |