NixOS 项目教程

随笔4周前发布 小花
46 0 0

NixOS 项目教程

nixosOBSOLETE (go to NixOS/nixpkgs) – NixOS, a Linux distribution based on the Nix package manager – OBSOLETE (go to NixOS/nixpkgs)项目地址:https://gitcode.com/gh_mirrors/ni/nixos

1. 项目的目录结构及介绍

NixOS 项目的目录结构遵循标准的 Git 仓库布局,主要包含以下几个部分:

  • .github: 包含 GitHub 相关的配置文件,如 issue 模板、PR 模板等。
  • doc: 包含项目的文档,如用户手册、开发者指南等。
  • nixos: 包含 NixOS 的核心配置和模块。
  • nixpkgs: 包含 Nix 包管理器的包定义和配置。
  • scripts: 包含一些辅助脚本,用于项目的构建和测试。

详细目录结构

  1. .

  2. ├── .github

  3. │ ├── ISSUE_TEMPLATE

  4. │ └── PULL_REQUEST_TEMPLATE

  5. ├── doc

  6. │ ├── manual

  7. │ └── style

  8. ├── nixos

  9. │ ├── modules

  10. │ ├── tests

  11. │ └── release.nix

  12. ├── nixpkgs

  13. │ ├── doc

  14. │ ├── lib

  15. │ ├── pkgs

  16. │ ├── scripts

  17. │ └── default.nix

  18. └── scripts

  19. ├── azure

  20. ├── benchmarks

  21. ├── ci

  22. ├── hydra

  23. └── release.nix

2. 项目的启动文件介绍

NixOS 的启动文件主要位于 nixos/modules/system/boot 目录下,负责系统的启动和初始化过程。

主要启动文件

  • loader.nix: 定义系统启动加载器,如 GRUB 或 systemd-boot。
  • kernel.nix: 定义内核参数和选项。
  • initrd.nix: 定义初始化内存文件系统(initrd)的配置。

示例

  1. { config, lib, pkgs, ... }:

  2. {

  3. boot.loader.grub.enable = true;

  4. boot.loader.grub.version = 2;

  5. boot.loader.grub.device = "/dev/sda";

  6. boot.kernelPackages = pkgs.linuxPackages_latest;

  7. boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ];

  8. }

3. 项目的配置文件介绍

NixOS 的配置文件使用 Nix 语言编写,主要位于 nixos/modules 目录下,定义了系统的各种配置选项。

主要配置文件

  • configuration.nix: 主配置文件,包含系统的基础配置。
  • hardware-configuration.nix: 硬件配置文件,包含硬件相关的配置。
  • services: 包含各种服务的配置模块。
  • networking: 包含网络相关的配置模块。

示例

  1. { config, pkgs, ... }:

  2. {

  3. imports = [

  4. ./hardware-configuration.nix

  5. ];

  6. boot.loader.grub.enable = true;

  7. boot.loader.grub.version = 2;

  8. boot.loader.grub.device = "/dev/sda";

  9. networking.hostName = "nixos";

  10. networking.wireless.enable = true;

  11. environment.systemPackages = with pkgs; [

  12. vim

  13. git

  14. ];

  15. services.openssh.enable = true;

  16. users.users.alice = {

  17. isNormalUser = true;

  18. extraGroups = [ "wheel" ];

  19. password = "secret";

  20. };

  21. system.stateVersion = "23.05";

  22. }

以上是 NixOS 项目的基本教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望这些内容能帮助你更好地理解和使用 NixOS。

nixosOBSOLETE (go to NixOS/nixpkgs) – NixOS, a Linux distribution based on the Nix package manager – OBSOLETE (go to NixOS/nixpkgs)项目地址:https://gitcode.com/gh_mirrors/ni/nixos

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...