Я пытаюсь собрать драйвер "nvidiaBeta", но он не может построить nvidia-settings с ошибкой
gtk + -2.x / ctkgridlicense.c: 38: 23: фатальная ошибка : dbus / dbus.h: Нет такого файла или каталога
Я пробовал устанавливать все виды пакетов dbus, но самое близкое, что я нашел в моем магазине nix, - это "dbus-c ++ / dbus.h" из производной dbus_cplusplus. Во время поиска я прочитал, что очевидно то, что мне нужно, должно содержаться в "dbus-libs", но похоже, что это не доступно в канале 17.03.
Похоже, я не могу понять, какое происхождение предполагается использовать в этой библиотеке. Могу ли я как-то обойти проблему и заставить его использовать тот, который у меня есть из производной dbus_cplusplus?
Как уже упоминалось, 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.
В отличие от других дистрибутивов, в NixOS, даже если вы установите правильные библиотеки, это не будет иметь значения, поскольку пакеты должны объявлять свои зависимости для успешной сборки.
Например, если вы пытаетесь собрать пакет A и он зависит от пакета B , установка пакета B не предоставит зависимость; package A его просто не увидит.
Что касается Nvidia, то я не вижу nvidiaBeta как вариант. Вы можете использовать «nv», который является драйвером с открытым исходным кодом -, или «nvidia», который является проприетарным драйвером. См.https://nixos.org/nixos/manual/#idm140737316337280