Estou usando o Nix para instalar pacotes em minha casa (portanto, não há pacotes binários) em um host compartilhado com recursos limitados. Estou tentando instalar o git-anexo. Ao criar uma de suas dependências, a lente haskell, os testes de unidade consomem tanta memória que são mortos e a instalação falha.
Existe uma maneira de pular os testes de unidade para instalar o pacote? Eu olhei para o construtor Cabal e haskell-packages.nix
parece-me que você pode desativar os testes definindo enableCheckPhase
false. Tentei o seguinte em ~/.nixpkgs/config.nix
, mas os testes ainda são executados:
{
packageOverrides = pkgs: with pkgs; {
# ...other customizations...
haskellPackages = haskellPackages.override {
extension = self : super : {
self.lens = self.disableTest self.lens;
};
};
};
}
fonte
nix-build --disable-check-phase
) sem alterar o hash de derivação / saída?Uma resposta alternativa, abordando sua preocupação de um ângulo diferente, é compilar seus pacotes com testes em uma máquina mais poderosa. Em seguida, quando necessário, copie o fechamento para o host remoto.
Isso funciona bem se você estiver na mesma arquitetura e o software em questão não estiver totalmente acoplado a nenhum hardware diferente nas duas máquinas.
Leia sobre como compartilhar pacotes entre máquinas no manual nix.
Esse é um recurso interessante que habilita a abordagem do nix ao gerenciamento de pacotes. Costumo usar esse recurso ao contrário, usando máquinas remotas mais poderosas para criar grandes quantidades de software para minha máquina local.
fonte