首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修改nixos包配置

如何修改nixos包配置
EN

Stack Overflow用户
提问于 2015-03-16 11:40:50
回答 1查看 2.8K关注 0票数 2

我正在一个只能通过网络代理访问外部世界的网络中构建一个nixos系统。nixos grub配置试图通过git:// URL访问grub存储库,这在我的网络中显然不起作用。

因此,我希望用相应的git:// URL替换http:// url。(savannah支持两者都有。)相应的nix文档展示了如何实现它。

我创建了一个包含以下内容的文件~/.nixpkgs/config.nix

代码语言:javascript
复制
{
  packageOverrides = pkgs: rec {
    grub = pkgs.grub.override {
      src.url="http://git.savannah.gnu.org/grub.git";
    };
  };
}

不幸的是,nixos-rebuild switch仍然试图使用旧的URL。我做错什么了?

我还阅读了文档的定制包。由此,我似乎可以将以下内容添加到/etc/nixos/configuration.nix

代码语言:javascript
复制
nixpkgs.config.packageOverrides = pkgs: {
    grub = pkgs.grub.overrideDerivation (pkgs.grub ( attrs: {
        url = "http://git.savannah.gnu.org/grub.git";
        rev = "2ae9457e6eb4c352051fb32bc6fc931a22528ab2";
        sha256 = "1ik60qgkymg0xdns5az1hbxasspah2vzxg334rpbk2yy3h3nx5ln";
    }));
};

然而,nixos-rebuild switchnixos-rebuild switch仍然使用旧的url。我可能需要添加提取器,但是我不知道如何在这个地方使用它。

EN

回答 1

Stack Overflow用户

发布于 2015-03-16 12:54:56

pkgs.grub.override可以覆盖文件顶部的函数。若要覆盖派生参数,请使用overrideDerivation,如http://nixos.org/nixos/manual/sec-package-management.html#sec-customising-packages中所述

代码语言:javascript
复制
{
  packageOverrides = pkgs: rec {
    grub = pkgs.grub.override (attrs: {
      src = fetchurl { url = "http://git.savannah.gnu.org/grub.git";
                       sha256 = "";
      };
    });
  };
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29075927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档