Używam Nix do instalowania pakietów w moim domu (więc nie ma pakietów binarnych) na współdzielonym hoście z ograniczonymi zasobami. Próbuję zainstalować załącznik git. Podczas budowania jednej z jej zależności, soczewki haskell, testy jednostkowe zużywają tyle pamięci, że zostają zabite, a instalacja kończy się niepowodzeniem.
Czy istnieje sposób na pominięcie testów jednostkowych w celu zainstalowania pakietu? Spojrzałem na konstruktora Cabala i haskell-packages.nix
wydaje mi się, że można wyłączyć testy, ustawiając wartość enableCheckPhase
false. Próbowałem następujące ~/.nixpkgs/config.nix
, ale testy są nadal uruchomione:
{
packageOverrides = pkgs: with pkgs; {
# ...other customizations...
haskellPackages = haskellPackages.override {
extension = self : super : {
self.lens = self.disableTest self.lens;
};
};
};
}
źródło
nix-build --disable-check-phase
) bez zmiany skrótu wyprowadzania / wyjścia?Alternatywną odpowiedzią, która rozwiązuje problem z innej strony, jest budowanie pakietów za pomocą testów na mocniejszej maszynie. Następnie w razie potrzeby skopiuj zamknięcie do zdalnego hosta.
Działa to dobrze, jeśli korzystasz z tej samej architektury, a oprogramowanie, o którym mowa, nie jest ściśle powiązane z żadnym innym sprzętem na obu komputerach.
Przeczytaj o tym, jak współdzielić pakiety między komputerami w instrukcji nix.
To miła funkcja, która umożliwia podejście Nix do zarządzania pakietami. Często korzystałem z tej funkcji w odwrotnej kolejności, używając bardziej wydajnych maszyn zdalnych do tworzenia dużej ilości oprogramowania dla mojego komputera lokalnego.
źródło