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の場合は見えません。Nvidia Betaオプションとして。 「nv」(オープンソースドライバ)または「nvidia」(専用ドライバ)を使用できます。バラよりhttps://nixos.org/nixos/manual/#idm140737316337280

関連情報