微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

全局覆盖软件包virtualbox来宾添加甚至在NixOS模块中

如何解决全局覆盖软件包virtualbox来宾添加甚至在NixOS模块中

virtualisation.virtualBox.guest.enable = true;添加/etc/nixos/configuration.nix,将VirtualBox Guest Additions添加生成的NixOS系统中,并创建一个systemd服务来运行VBoxService可执行文件

我想使用的访客添加版本与当前频道/ nixpkgs的“运送”版本不同。

因此,我尝试使用configuration.nix覆盖nixpkgs.config.packageOverwrites中的软件包:

  nixpkgs = {
    config = {
      allowUnfree = true;
      packageOverrides = xpkgs: {
        linuxPackages = xpkgs.linuxPackages // 
        (
          let vBox = xpkgs.callPackage ./vBox-guest.nix { kernel = xpkgs.linuxPackages.kernel; };
          in
          {
            virtualBoxGuestAdditions = vBox;
            kernel = xpkgs.linuxPackages.kernel // {virtualBoxGuestAdditions = vBox;};
          }
        );
      };
    };

  };

这将构建新的Guest Additions程序包,但不以任何方式使用它(nix-store --query --referrers /nix/store/NEW-VBox-GUEST-ADDS-PATH不显示引荐来源); systemd服务以及环境软件包仍然使用“已发货”版本。

即使在选择boot.kernelPackages时直接提供“覆盖”也不起作用:

boot.kernelPackages = pkgs.linuxPackages // 
        (
          let vBox = pkgs.callPackage ./vBox-guest.nix { kernel = pkgs.linuxPackages.kernel; };
          in
          {
            virtualBoxGuestAdditions = vBox;
            kernel = pkgs.linuxPackages.kernel // {virtualBoxGuestAdditions = vBox;};
          }
        );

将覆盖项放入~/.nixpkgs/config.nix/root/.nixpkgs/config.nix中也无济于事。

如何在不手动“重写”提供此...guest.enable设置的nixos模块的情况下更改使用哪个软件包?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。