我发现通过覆盖我们可以轻松定制 nixpkgs。快速谷歌搜索我得到了这样的很好的结果,取自:
# Creating an overlay
let overlay1 = self: super:
{
google-chrome = super.google-chrome.override {
commandLineArgs =
"--proxy-server='https=127.0.0.1:3128;http=127.0.0.1:3128'";
};
};
# Actually using it
import <nixpkgs> { overlays = [ overlay1 ]; }
但我实际上不知道如何使用覆盖来修改现有的 haskell 包。我想禁用带有覆盖层的 hasktags
测试。救命!
最佳答案
经过更多挖掘,这对我有用:
self: super: {
haskellPackages = super.haskellPackages.override {
overrides = haskellSelf: haskellSuper: {
hasktags = self.haskell.lib.dontCheck haskellSuper.hasktags;
};
};
}
并将其放在 ~/.config/nixpkgs/overlays.nix
或 ~/.config/nixpkgs/overlays/
目录中。
上面的示例是当您想要禁用对 hasktags
进行测试时的情况。这个想法适用于所有其他包。
关于haskell - 将覆盖应用到 haskellPackages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51317604/