Я использую Nix для установки пакетов у себя дома (то есть без бинарных пакетов) на общем хосте с ограниченными ресурсами. Я пытаюсь установить git-приложение. При построении одной из его зависимостей, haskell-lens, модульные тесты потребляют столько памяти, что их убивают, а установка не удается.
Есть ли способ пропустить модульные тесты, чтобы установить пакет? Я посмотрел на сборщика Cabal, haskell-packages.nix
и мне кажется, что вы можете отключить тесты, установив enableCheckPhase
значение false. Я попробовал следующее ~/.nixpkgs/config.nix
, но тесты все еще выполняются:
{
packageOverrides = pkgs: with pkgs; {
# ...other customizations...
haskellPackages = haskellPackages.override {
extension = self : super : {
self.lens = self.disableTest self.lens;
};
};
};
}
nix-build --disable-check-phase
) без изменения хеша деривации / вывода?Альтернативный ответ, решающий вашу проблему с другой стороны, состоит в том, чтобы собрать пакеты с тестированием на более мощной машине. Затем при необходимости скопируйте замыкание на удаленный хост.
Это хорошо работает, если вы используете одну и ту же архитектуру и рассматриваемое программное обеспечение не тесно связано с каким-либо оборудованием, которое отличается на двух компьютерах.
Прочтите о том, как делиться пакетами между машинами, в руководстве по nix.
Это хорошая функция, которая включает подход nix к управлению пакетами. Я часто использовал эту функцию в обратном порядке, используя более мощные удаленные машины для создания большого количества программного обеспечения для моей локальной машины.
источник