如何使用 configruation.nix 中的 packageOverride 升级 netbeans?

如何使用 configruation.nix 中的 packageOverride 升级 netbeans?

我正在尝试使用更改 netbeans 的版本指导。我在我的里面使用 config.nix 表达式,/etc/configuration.nix它是这样的:

 nixpkgs.config = {
    packageOverrides = pkgs: rec {
      myNetbeans = pkgs.stdenv.lib.overrideDerivation pkgs.netbeans ( oldAttrs: {
        name = "netbeans-8.1";
        src = fetchurl {
          url = ttp://download.netbeans.org/netbeans/8.1/final/zip/netbeans-8.1-201510222201.zip;
          md5 = "361ce18421761a057bad5cb6cf7b58f4";
        };
      });
    };
  };

我相信我一切都正确,但无法找到 fetchurl 并且出现这些错误。

错误:/etc/nixos/configuration.nix:83:15 处未定义变量“fetchurl”(使用“--show-trace”显示详细位置信息)错误:/etc/nixos/configuration 处未定义变量“fetchurl”。 nix:83:15(使用“--show-trace”显示详细位置信息)构建系统配置...错误:/etc/nixos/configuration.nix:83:15 处未定义变量“fetchurl”(使用“ --show-trace' 显示详细的位置信息)

如何修复此错误并升级 netbeans?

答案1

你快到了。 fetchurl 变量仅在 pkgs 集的范围内存在/定义。这就是错误消息指出 fetchurl 变量未定义的原因。因此,只需从 pkgs 集的范围访问 fetchurl 属性,即pkgs.fetchurl,与 的相同pkgs.netbeans

如果您需要访问一组属性中的大量属性,请使用nix 语言构造(参考)。

PS,您需要更正 中的拼写错误url = http://

相关内容