Я работаю на nixOS.Как пользователь я устанавливаю xmonad-with-packages & ghc-with-packages.У меня есть файл конфигурации и оверлеи для достижения этой цели, но я регулярно сталкиваюсь с конфликтами:
error: packages '/nix/store/jzjxvm4kll3b2pw7plhksgl1jxvwnkw8-xmonad-with-packages-8.6.4/share/man/man1/ghc.1.gz' and '/nix/store/dnk4znsf8avwjalj350wj59vznpzcihl-ghc-8.6.4-with-packages/share/man/man1/ghc.1.gz' have the same priority 5; use 'nix-env --set-flag priority NUMBER INSTALLED_PKGNAME' to change the priority of one of the conflicting packages (0 being the highest priority)
Я могу использовать nix-env --set-flag priority
для решения этой проблемы, но
Этокажется странным - иногда это работает, иногда нет.Я хотел бы сказать, что я не согласен с использованием, но я не верю, что я есть.Например, с указанной выше ошибкой я запускаю
nix-env --set-flag priority 4 ghc-8.6.4-with-packages
setting flag on 'ghc-8.6.4-with-packages'
... и затем при повторном запуске nix-env -i я вижу ту же ошибку: - (
Всякий раз, когда я меняю хост (слишком часто), мне приходится запускать его снова, что раздражает, но, к тому же, приводит к потенциальному несоответствию, которого я стараюсь избегать с помощью nix.
Мне бы очень хотелось настроить приоритеты в моих оверлеях (или config.nix
), но как мне это сделать? Мой overlays/myHaskellEnv.nix
выглядит так:
self: super: {
myHaskellEnv = self.haskellPackages.ghcWithHoogle
(haskellPackages: with haskellPackages;
[ aeson ... ])
}
мойoverlays/myXmonad.nix
вот так:
self: super: {
myXmonad = super.xmonad-with-packages.override {
packages = hPkgs: with hPkgs; [ xmonad-contrib ];
};
}
и мой config.nix
вот так:
{ nixpkgs ? import <nixpkgs> {} }:
with nixpkgs;
{
inherit myXmonad myHaskellEnv;
}
Любая помощь или указатели с благодарностью получены!