在非 NixOS 上从 Nix 为 Amazon 构建 NixOS AMI 映像 Linux

Building NixOS AMI image for Amazon from Nix on non-NixOS Linux

我正在尝试使用 nixos-generators 在我的 Ubuntu 机器上构建一个 AMI,该机器安装了 nix 包管理器。我有这样的配置:

$ cat configuration.nix
{ pkgs, ... }:

{
  imports = [ <nixpkgs/nixos/modules/virtualisation/amazon-image.nix> ];
  ec2.hvm = true;
  environment.systemPackages = with pkgs; [ git ];
}

然后我使用此命令创建 AMI:

$ nixos-generate -f amazon -c ./configuration.nix
these derivations will be built:
  /nix/store/zc68psb6kxz9sxqr82bqs7x6c3vamnbd-nixos-amazon-image-20.09pre-git-x86_64-linux.drv
error: a 'x86_64-linux' with features {kvm} is required to build '/nix/store/zc68psb6kxz9sxqr82bqs7x6c3vamnbd-nixos-amazon-image-20.09pre-git-x86_64-linux.drv', but I am a 'x86_64-linux' with features {benchmark, big-parallel, nixos-test}

你可以看到我得到的上面的错误。我知道我的系统是 能够 运行 个 KVM 虚拟机:

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

根据阅读文档,我用以下内容填充 nix.conf

$ cat ~/.config/nix/nix.conf
system-features = "kvm"

为此,我得到了这个奇怪的错误:

$ nixos-generate -f amazon -c ./configuration.nix
these derivations will be built:
  /nix/store/zc68psb6kxz9sxqr82bqs7x6c3vamnbd-nixos-amazon-image-20.09pre-git-x86_64-linux.drv
error: a 'x86_64-linux' with features {kvm} is required to build '/nix/store/zc68psb6kxz9sxqr82bqs7x6c3vamnbd-nixos-amazon-image-20.09pre-git-x86_64-linux.drv', but I am a 'x86_64-linux' with features {"kvm"}

关于如何解决这个问题和构建 AMI 有什么想法吗?

来自 IRC 的@patogonicus 发现问题是 nix.conf 文件中的双引号:

system-features = kvm

它在该配置下运行良好。