J'utilise Nix pour installer des packages sous ma maison (donc pas de packages binaires) sur un hôte partagé avec des ressources limitées. J'essaie d'installer git-annex. Lors de la construction d'une de ses dépendances, haskell-lens, les tests unitaires consomment tellement de mémoire qu'ils sont tués et l'installation échoue.
Existe-t-il un moyen d'ignorer les tests unitaires pour installer le package? J'ai regardé le constructeur Cabal haskell-packages.nix
et il me semble que vous pouvez désactiver les tests en définissant enableCheckPhase
false. J'ai essayé ce qui suit dans ~/.nixpkgs/config.nix
, mais les tests sont toujours exécutés:
{
packageOverrides = pkgs: with pkgs; {
# ...other customizations...
haskellPackages = haskellPackages.override {
extension = self : super : {
self.lens = self.disableTest self.lens;
};
};
};
}
nix-build --disable-check-phase
) sans modifier le hachage de dérivation / sortie?Une autre réponse, répondant à votre préoccupation sous un angle différent, consiste à créer vos packages avec des tests sur une machine plus puissante. Ensuite, si nécessaire, copiez la fermeture sur l'hôte distant.
Cela fonctionne bien si vous êtes sur la même architecture et que le logiciel en question n'est pas étroitement couplé à un matériel différent sur les deux machines.
Découvrez comment partager des packages entre des machines dans le manuel nix.
C'est une fonctionnalité intéressante qui permet à l'approche de nix de gérer les packages. J'ai souvent utilisé cette fonctionnalité à l'envers, en utilisant des machines distantes plus puissantes pour créer de grandes quantités de logiciels pour ma machine locale.
la source