Создание образа NixOS AMI для Amazon из Nix в не-NixOS Linux

#nix #nixos #nixpkgs

#никс #nixos #nixpkgs #nix

Вопрос:

Я пытаюсь использовать nixos-генераторы для создания AMI на моем компьютере Ubuntu, на котором установлен nix package manager. У меня есть такая конфигурация:

 $ 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?

Ответ №1:

@patogonicus из IRC обнаружил, что проблема заключалась в двойных кавычках в nix.conf файле:

 system-features = kvm
  

И он отлично работал с этой конфигурацией.