用于桌面的NixOS
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's guides are about an even mix of:
- Hands-on bootstrapping to get to being able to very capably manage your system using Home Manager, git versioning, and eventually Flakes.
- Conceptual overviews and general exposition of the Nix ecosystem, community, and available resources.
The second video, starting from about 27 minutes in, is also an introduction to and guide to setting up Home Manager.
Modularizing your configuration
With NixOS Modules
configuration.nix is an instance of a NixOS module, which makes it easy to break your configuration into several files. Modules can:
- Import other modules
- Declare new options
- Provide values for options (this is what most of your default configuration.nix does)
- Reference option values from other modules (via the
config
attribute passed to all modules)
As long as you declare options for any values you want to share between modules, you can divide your configuration however you like into files that get imported, directly or transitively, by your root configuration.nix file. You can also import modules from remote sources, using functions like builtins.fetchTarball
. See the wiki page or the NixOS manual for more information.
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.