将覆盖应用到 haskellPackages
Applying overlay to haskellPackages
我已经看到通过覆盖我们可以轻松地自定义 nixpkgs。快速 google 搜索我得到了这样的相当不错的结果,取自 :
# 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
上禁用测试。这个想法适用于所有其他包。
我已经看到通过覆盖我们可以轻松地自定义 nixpkgs。快速 google 搜索我得到了这样的相当不错的结果,取自 :
# 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
上禁用测试。这个想法适用于所有其他包。