可以使用来自/etc/nixos/configuration.nix的配置从nixos安装包--在这个答案中是不稳定的。
下面是一个从nixos-不稳定安装htop包的示例:
{ 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安装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
];上面的代码将正确地从nixos(不稳定的,但不是Virtualbox内核模块)安装virtualbox包。
如何从nixos安装Virtualbox内核模块-也不稳定?为什么上面的方法不起作用?
发布于 2018-02-17 15:01:59
发布于 2018-03-08 23:28:58
安装了原始内核模块,因为它是针对特定内核单独构建的。通常,虚拟盒-主机模块使内核模块和用户程序保持同步。
当您想要覆盖用户程序时,还需要重写内核模块。这相当于这样的东西:
!!未测试代码!
...
boot.kernelPackages = pkgs.linuxPackages.extend (self: super: {
virtualbox = super.virtualbox.override {
inherit (self) kernel;
};
virtualboxGuestAdditions = super.virtualboxGuestAdditions.override {
inherit (self) kernel;
};
});
## also, the user program override should be introduced
## directly at packageOverrides
nixpkgs.config.packageOverrides = pkgs: rec {
unstable = import
(fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {
config = config.nixpkgs.config;
};
virtualbox = unstable.virtualbox;
};
...类似这样的东西应该允许您运行常规的virtualbox-主机模块,并注入不稳定的包。
https://stackoverflow.com/questions/48838411
复制相似问题