【问题标题】:Set environment parameter in Nix for a building phase for buildGoModule?在 Nix 中为 buildGoModule 的构建阶段设置环境参数?
【发布时间】:2020-05-23 01:27:48
【问题描述】:

我正在尝试使用 buildGoModule 构建一个 Go moodule。我的问题是,在构建期间 go 试图联系 proxy.golang.org 但它在我的网络中被阻止,解决方案是设置环境变量 GOPROXY

我认为passthru = { GOPROXY = "direct"; }; 可以完成这项工作,但错误仍然存​​在。所以我想知道什么是传递环境变量的好方法。

覆盖GOPROXY 应该可以工作,因为我在nix-shell 中单独对其进行了测试 - 它工作正常。

【问题讨论】:

  • passthru 仅在 Nix 级别设置属性,不会将值传递给构建器。 nixos.org/nixpkgs/manual/#ssec-stdenv-attributes 您必须直接在所有获取 go sources 的派生上设置它。这似乎没有记录。
  • 是的,在 overrideModAttrs 中覆盖 GOPROXY 就可以了。

标签: nix


【解决方案1】:

buildGoModule 中,可以使用 overrideModAttrs 覆盖 go-modules 派生。

特别是对于GOPROXY,它看起来像:

overrideModAttrs = (_: {
  GOPROXY = "whatever";
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-20
    • 2021-05-27
    • 2019-06-10
    • 2018-04-20
    • 2020-08-03
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多