Nix 入门配置教程
项目介绍
nix-starter-configs
是一个开源项目,旨在为 NixOS 和 home-manager 提供简单的 Nix flake 模板。该项目由 Misterio77 维护,可以帮助用户快速启动和配置 NixOS 和 home-manager。
项目快速启动
克隆项目
首先,克隆 nix-starter-configs
仓库到本地:
git clone https://github.com/Misterio77/nix-starter-configs.git
cd nix-starter-configs
生成硬件配置
如果你还没有硬件配置文件,可以使用以下命令生成:
sudo nixos-generate-config --root /mnt
配置 NixOS
编辑 flake.nix
文件,确保填写所有标记为 FIXME
和 TODO
的部分。然后更新 flake.lock
文件以获取最新包和模块:
nix flake update
应用配置
使用以下命令应用系统配置:
sudo nixos-rebuild switch --flake .#hostname
应用案例和最佳实践
基本配置
一个基本的 NixOS 配置文件可能如下所示:
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
boot.loader.grub.device = "/dev/sda";
networking.hostName = "nixos";
networking.networkmanager.enable = true;
environment.systemPackages = with pkgs; [
vim
git
];
system.stateVersion = "22.11";
}
Home-Manager 配置
一个基本的 home-manager 配置文件可能如下所示:
{ config, pkgs, ... }:
{
home.username = "your-username";
home.homeDirectory = "/home/your-username";
home.packages = with pkgs; [
vim
git
];
programs.bash.enable = true;
programs.bash.shellAliases = {
ll = "ls -l";
};
home.stateVersion = "22.11";
}
典型生态项目
NixOS
NixOS 是一个基于 Nix 包管理器的 Linux 发行版,以其声明式配置和可靠的系统更新而闻名。
Home-Manager
Home-Manager 是一个用于管理用户环境的工具,可以与 NixOS 集成,提供用户级别的包管理和配置。
Flakes
Flakes 是 Nix 的一个新特性,用于管理依赖和构建,提供了更好的可重复性和可维护性。
通过使用 nix-starter-configs
,你可以快速开始使用这些工具,并构建一个稳定、可重复的开发环境。