我正在尝试构建"nvidiaBeta“驱动程序,但是它无法生成带有错误的nvidia设置。
gtk+-2.x/ctkgridLicse.c:38:23:致命错误: dbus/dbus.h:没有这样的文件或目录
我尝试过安装各种dbus包,但我在nix存储中得到的最接近的东西是来自dbus_cplusplus派生的“dbus++/dbus.h”。在搜索过程中,我读到了我需要的内容显然应该包含在"dbus-libs“中,但似乎没有出现在17.03频道中。
我似乎找不出哪个派生应该在这个库中使用。我能以某种方式解决这个问题并让它使用我从dbus_cplusplus派生中得到的吗?
发布于 2017-08-21 14:15:40
如前所述,在构建包时,Nix将不关心系统或用户安装的包,所讨论的包需要显式声明其所有依赖项。
对于这个特定的问题,可以在dbus/dbus.h派生的dev输出中找到dbus文件。Nix还提供了覆盖包定义的工具,我们可以使用这些工具将dbus.dev输入到nvidia设置的构建输入中。在configuration.nix中添加以下内容:
nixpkgs.config.packageOverrides = pkgs:
{
linuxPackages = pkgs.linuxPackages.extend(self: super: {
nvidia_x11_beta = super.nvidia_x11_beta // {
settings = super.nvidia_x11_beta.settings.overrideAttrs(old: {
buildInputs = old.buildInputs ++ [ pkgs.dbus.dev ];
});
};
});
};允许构建在我的17.03系统上成功。
发布于 2017-08-20 17:34:34
与其他发行版不同的是,在NixOS上,即使您碰巧安装了正确的库,也不会有什么不同,因为包必须声明它们的依赖关系才能成功构建。
例如,如果您试图构建包A,并且它依赖于包B,那么安装包B不会提供依赖关系;package A根本看不到它。
至于Nvidia,我不认为nvidiaBeta是一种选择。您可以使用"nv“(开放源码驱动程序)或"nvidia”(专有驱动程序)。请参阅https://nixos.org/nixos/manual/#idm140737316337280
https://unix.stackexchange.com/questions/386572
复制相似问题