NixOS as a desktop/zh: Difference between revisions
Created page with "* 导入其他模块 * 声明新的选项 * 为选项设定值(这就是你的默认configuration.nix主要做的事情) * 从其他模块引用选项的值(通过传给所有模块的<code>config</code>属性)" |
Created page with "只要你为任何你想在模块之间共享的值声明了选项, 你就可以按照你的喜好, 把你的配置分开放入文件, 这些文件直接地或间接地从你的根文件configuration.nix导入. 你也可以使用<code>builtins.fetchTarball</code>这样的函数从远程源导入模块. 查看wiki页面或者[https://nixos.org/manual/nixos/stable/#sec-writing-modules NixOS手册]来获取更多信息." |
||
Line 44: | Line 44: | ||
* 从其他模块引用选项的值(通过传给所有模块的<code>config</code>属性) | * 从其他模块引用选项的值(通过传给所有模块的<code>config</code>属性) | ||
只要你为任何你想在模块之间共享的值声明了选项, 你就可以按照你的喜好, 把你的配置分开放入文件, 这些文件直接地或间接地从你的根文件configuration.nix导入. 你也可以使用<code>builtins.fetchTarball</code>这样的函数从远程源导入模块. 查看[[NixOS modules|wiki页面]]或者[https://nixos.org/manual/nixos/stable/#sec-writing-modules NixOS手册]来获取更多信息. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> |
Revision as of 11:39, 25 February 2025
NixOS可以用于许多目的. 如果你想把它用作你的日常主要桌面操作系统(在实体机上或者作为副虚拟机), 那么你应该看看这个页面. 即使你是想把NixOS用在云端或者是经过特殊配置的服务器上, 你也可能会想从这里概述的课程开始, 以便从整体上对Nix生态有更好的了解.
安装
Wiki(维基百科)上的方法
如果你倾向于阅读, 请从NixOS安装指南开始. 如果你想选择一个精良的视频教程, 请见下一条. 请记住, 为了安装一个桌面, 你需要确定一开始有至少30GiB的可用硬盘空间来容纳桌面环境(比如说, GNOME, KDE, 或者是XFCE), 浏览器(比如Firefox), 以及其他带有图形界面的典型日用软件(如VSCode). 对于相对简陋的配置, 15GiB可能够用.
视频指南
如果想要一个可视化指南, 请看Wil T Nix Guides. 其中第二个视频是一个简洁的安装指南. 这个8期视频系列于2021年初制作, 也涵盖了从把NixOS用作桌面到根据你的喜好来配置它的所有基本内容.
管理你的配置
你可以使用NixOS官方手册中记录的方式来管理你的所有配置. 然而, 大部分在桌面上使用NixOS的社区成员更喜欢使用Home Manager来管理他们的配置(比如"点文件")(citation needed). Home Manager是一个面向用户的工具, 用于声明你想安装什么, 以及你想如何配置它. 对于大部分设置, 如果你不使用Home Manager的话, 你就要把它们放入configuration.nix, 或者使用nix-env.
视频指南
Wil T的指南是下列内容的均衡组合:
- 动手实践的引导, 让你逐步学会使用Home Manager, git版本控制,以及最后的Flakes来掌握你的系统
- Nix生态, 社区, 以及可用资源的概念总览和总体介绍
其中第二个视频, 从大概27分钟开始, 也是对Home Manager的介绍和设置指南.
模块化你的配置
With NixOS Modules
configuration.nix是NixOS模块的一个实例, 因此把你的配置分开放入若干文件中很容易. 模块可以:
- 导入其他模块
- 声明新的选项
- 为选项设定值(这就是你的默认configuration.nix主要做的事情)
- 从其他模块引用选项的值(通过传给所有模块的
config
属性)
只要你为任何你想在模块之间共享的值声明了选项, 你就可以按照你的喜好, 把你的配置分开放入文件, 这些文件直接地或间接地从你的根文件configuration.nix导入. 你也可以使用builtins.fetchTarball
这样的函数从远程源导入模块. 查看wiki页面或者NixOS手册来获取更多信息.
With Flakes
If you want a more composable[citation needed] NixOS configuration setup, the still-experimental Flakes feature is causing a lot of excitement in the community. Managing flakes requires a good basic understanding and some existing hands on experience with the Nix ecosystem.
视频指南
Videos seven and eight of Wil T's original 8-part series are a good overview of what Flakes enable and how to get started with them.
Beyond initial setup
After you are familiar with the Nix ecosystem and have a functional desktop install of NixOS, you will likely be interested in customizations and more detailed setup.
通过示例来学习
If you are comfortable managing your system through a git repo using flakes, then there are many repositories you can learn from now!
Check out Comparison of NixOS setups for a table comparing some popular choices.
See Configuration Collection for a long list within the wiki.
Additionally, the following topic searches on Github should uncover many useful examples.