从头开始开发基于 Nix 的系统?

从头开始开发基于 Nix 的系统?

是否有可能生长一个尼克斯(包管理器,不是 nixos 发行版)从头开始基于 Linux 系统?进一步来说:

  1. AFAIK Nix 提供了 glibc、gcc、linux 内核等基础设施包。这是否意味着不需要像 LFS 那样手动构建这些包?

  2. Nixos 本身使用 systemd,但我知道非操作系统,它基于 runit。 nixpkg 软件包对 systemd 的依赖程度如何?

  3. Nixos 似乎仅支持 grub 作为引导加载程序。可以在 Nix 中使用 EFI-stub 引导以及 dracut 或手工卷起的 initcpio 吗?

如果你好奇的话,这是为什么

  1. 我喜欢 gentoo 的 USE 标志,但是有点厌倦了 gentoo 频繁的依赖地狱和世界重新编译(特别是在 python 版本控制方面,尽管这本质上不是 gentoo 的错,哈哈)。因此,我正在寻找一个包管理器,它对基于源的包和二进制包都有很好的支持,并且具有更简单的依赖关系处理。我在 Arch (Artix) 和 Void 之间徘徊,但在这两种情况下都必须手动管理源包。最后我发现尼克斯非常适合。

  2. 纯粹出于乐趣和美观的原因,我想尝试一个非 systemd 发行版。

  3. 我更喜欢 EFI 存根。

  4. 我使用 ZFS 作为根文件系统,它需要特殊的 initcpio。

答案1

简而言之,是的,您可以使用 Nix 和 Nixpkgs 作为基础来推出自己的 Linux 发行版。

AFAIK Nix 提供了诸如 Linux 内核等基础设施包glibcgcc这是否意味着不需要像 LFS 那样手动构建这些包?

正确的。您应该能够使用现有的软件包。

Nixos 本身使用 systemd,但我知道 not-os,它基于 runit。 nixpkg 软件包对 systemd 的依赖程度如何?

考虑到 Nixpkgs 和 NixOS 位于同一个 Git 存储库中,这很难说。尼克斯包装应该不依赖于 systemd(除了提供 systemd 软件包之外),但可能存在一些依赖关系。

Nixos 似乎仅支持 grub 作为引导加载程序。可以在 Nix 中使用 EFI-stub 引导以及 dracut 或手工卷起的 initcpio 吗?

NixOS 支持 systemd-boot 和 GRUB。我想不出为什么不可能支持其他引导加载程序的原因。

相关内容