virtualbox - 在 configuration.nix 中从 nixos-unstable 安装 virtualbox 模块

标签 virtualbox kernel-module nix nixos

可以在 /etc/nixos/configuration.nix 中从 nixos-unstable 安装软件包使用来自 this answer 的配置.

这是安装 htop 的示例来自 nixos-unstable 的软件包:

{ config, pkgs, ... }:

let
  unstableTarball =
    fetchTarball
      https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz;
in
{
  ...

  nixpkgs.config = {
    packageOverrides = pkgs: {
      unstable = import unstableTarball {
        config = config.nixpkgs.config;
      };
    };
  };

  environment.systemPackages = with pkgs; [
    ...
    unstable.htop
  ];

  ...
};

我也希望能够从 nixos-unstable 安装 Virtualbox 包(和相关的内核模块)。

天真地添加 virtualbox打包至 environment.systemPackages不像我预期的那样工作。与不稳定版本的 Virtualbox 匹配的 Virtualbox 模块不会被安装。这是我的 /etc/nixos/configuration.nix 的片段:
  nixpkgs.config.virtualbox.enableExtensionPack = true;
  virtualisation.virtualbox.host.enable = true;
  environment.systemPackages = with pkgs; [
    ...
    unstable.virtualbox
  ];

以上将正确安装virtualbox来自 nixos-unstable 的包,但不是 Virtualbox 内核模块。

如何从 nixos-unstable 安装 Virtualbox 内核模块?为什么以上不起作用?

最佳答案

您的配置不起作用,因为 virtualbox 模块有自己对 virtualbox 包的引用。也许它应该公开一个选项来覆盖包,比如一些 other modules做,但现在没有。为它提出拉取请求应该不难。

替代方案是 to replace the offending module/modules通过禁用使用 disabledModules然后使用 imports 导入替换项.

无论哪种方式,您的里程可能会有所不同。第一个选项对我来说似乎是最干净的,但是您可能需要检查发行版和不稳定版本中的 nixos 模块之间的差异。

关于virtualbox - 在 configuration.nix 中从 nixos-unstable 安装 virtualbox 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48838411/

相关文章:

virtualbox - 安装 VirtualBox 4.3.6 时无法卸载 kext

linux - smbclient linux/os x nt_status_pipe_broken

macos - Minikube 无法在 Mac 上使用 VPN 启动

nix - 覆盖 Nix 中的服务定义?

internet-explorer-8 - 在 Virtual Box VM 上安装 IE 8?

linux - 如何在运行时获取内核模块的完整依赖列表

memory-management - 如何使用 mmap 在用户空间和内核之间共享内存并且数据不受文件支持

c - 新 Linux 内核中的内存隔离,或者什么?

nix - 如何在 nix 中记录可重现的配置文件(尤其是来自 nix-env)?

containers - 无法使用 nix-build 和 dockerTools.buildImage 构建 podman 兼容的容器