如何解决全局覆盖软件包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 举报,一经查实,本站将立刻删除。