我正在测试 nix 包管理器。我在 virtualbox 中安装了 ubuntu 并尝试安装来宾添加项。我~/.nixpkgs/config.nix
的是
{
allowUnfree = true;
packageOverrides = pkgs_: with pkgs_; {
all = with pkgs; buildEnv {
name = "all";
paths = [
virtualbox-guest
];
};
};
}
但是nix-env -i all
告诉我 virtualbox-guest 是一个未定义的变量。
也nix-env -qaP '.*virtualbox.*'
没有匹配,即使我知道有一个virtualbox-guest.nix。
答案1
因此,您在虚拟机中安装了 Ubuntu,并在其上安装了 Nix 软件包管理器,并且您希望通过 Nix 软件包管理器安装 VirtualBox 的来宾添加项。
您要查找的包的属性名称是linuxPackages.virtualboxGuestAdditions
。因此,您可以通过发出以下命令来安装它:
nix-env -iA linuxPackages.virtualboxGuestAdditions -f '<nixpkgs>'
我不确定该软件包是否真的可以在 Ubuntu 上运行,因为它的描述暗示它是一个仅适用于 NixOS 的软件包:
各种附加组件使 NixOS 作为 VirtualBox 中的来宾操作系统更好地工作。该附加组件支持动态调整 X Display 大小、共享主机/来宾剪贴板支持和来宾 OpenGL 支持。
事实上,Nix 包管理器对于在其他发行版上安装用户空间应用程序很有用,但如果您还希望 Nix 处理系统模块,则必须切换到 NixOS(然后启用来宾添加的正确方法是通过virtualisation.virtualbox.guest.enable
您可以设置的选项)在你的/etc/nixos/configuration.nix
描述中手册)。
顺便说一句,您输入的内容~/.nixpkgs/config.nix
没有多大意义。该文件用于配置 Nix 包管理器本身,允许非自由包或覆盖现有包。您不需要覆盖您案例中的任何包。而且您也不需要允许非自由软件包,因为 VirtualBox 的来宾添加项已注册为 GPL。