NixOS 빌드 오류: 'dbus/dbus.h'를 찾을 수 없습니다.

NixOS 빌드 오류: 'dbus/dbus.h'를 찾을 수 없습니다.

"nvidiaBeta" 드라이버를 빌드하려고 하는데 nvidia 설정을 빌드할 수 없고 오류가 발생합니다.

gtk+-2.x/ctkgridlicense.c:38:23: 치명적인 오류: dbus/dbus.h: 해당 파일이나 디렉터리가 없습니다.

다양한 dbus 패키지 설치를 시도했지만 nix 스토어에서 얻은 가장 가까운 것은 dbus_cplusplus 포크의 "dbus-c++/dbus.h"였습니다. 검색하는 동안 분명히 필요한 것이 "dbus-libs"에 포함되어야 한다는 내용을 읽었지만 채널 17.03에서는 사용할 수 없는 것 같습니다.

이 라이브러리에 어떤 파생물을 도입해야 할지 알 수 없는 것 같습니다. 어떻게든 이 문제를 해결하고 dbus_cplusplus 포크에서 얻은 문제를 사용하도록 할 수 있습니까?

답변1

이미 언급했듯이 Nix는 패키지를 빌드할 때 시스템이나 사용자가 설치한 패키지에 신경 쓰지 않으며 관련 패키지는 모든 종속성을 명시적으로 선언해야 합니다.

이 특정 질문과 관련하여 파일은 파생 결과에서 찾을 dbus/dbus.h수 있습니다 . Nix는 또한 nvidia에서 설정한 빌드 입력을 입력하는 데 사용할 수 있는 패키지 정의를 재정의하는 도구를 제공합니다 . 다음을 추가하십시오 .devdbusdbus.devconfiguration.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 시스템에서 빌드가 성공할 수 있습니다.

답변2

다른 배포판과 달리 NixOS에서는 올바른 라이브러리를 설치하더라도 패키지가 성공적으로 빌드되기 위해 종속성을 선언해야 하므로 아무런 차이가 없습니다.

예를 들어 패키지를 빌드하려고 하면그것은 패키지에 따라 달라집니다두번째,설치 패키지두번째종속성은 제공되지 않습니다.전혀 보이지 않을 것입니다.

Nvidia의 경우에는 보이지 않습니다.엔비디아 베타옵션으로. "nv"(오픈 소스 드라이버) 또는 "nvidia"(전용 드라이버)를 사용할 수 있습니다. 바라보다https://nixos.org/nixos/manual/#idm140737316337280

관련 정보