首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NixOS构建错误:"dbus/dbus.h“未找到

NixOS构建错误:"dbus/dbus.h“未找到
EN

Unix & Linux用户
提问于 2017-08-17 00:10:30
回答 2查看 1.7K关注 0票数 0

我正在尝试构建"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派生中得到的吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-08-21 14:15:40

如前所述,在构建包时,Nix将不关心系统或用户安装的包,所讨论的包需要显式声明其所有依赖项。

对于这个特定的问题,可以在dbus/dbus.h派生的dev输出中找到dbus文件。Nix还提供了覆盖包定义的工具,我们可以使用这些工具将dbus.dev输入到nvidia设置的构建输入中。在configuration.nix中添加以下内容:

代码语言:javascript
复制
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系统上成功。

票数 0
EN

Unix & Linux用户

发布于 2017-08-20 17:34:34

与其他发行版不同的是,在NixOS上,即使您碰巧安装了正确的库,也不会有什么不同,因为包必须声明它们的依赖关系才能成功构建。

例如,如果您试图构建包A,并且它依赖于包B,那么安装包B不会提供依赖关系;package A根本看不到它。

至于Nvidia,我不认为nvidiaBeta是一种选择。您可以使用"nv“(开放源码驱动程序)或"nvidia”(专有驱动程序)。请参阅https://nixos.org/nixos/manual/#idm140737316337280

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/386572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档