Nixos

如何在 configruation.nix 中使用 packageOverride 升級 netbeans?

  • March 21, 2016

我正在嘗試使用指南更改 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’顯示詳細的位置資訊)建構系統配置…錯誤:未定義變數’fetchurl’在/etc/nixos/configuration.nix:83:15(使用’ –show-trace’ 顯示詳細的位置資訊)

如何修復此錯誤併升級 netbeans?

你快到了。fetchurl 變數僅存在/定義在 pkgs 集的範圍內。這就是錯誤消息指出 fetchurl 變數未定義的原因。因此,只需從 pkgs 集的範圍內訪問 fetchurl 屬性,即pkgs.fetchurl與您的 for 相同pkgs.netbeans

如果您需要訪問一組屬性中的大量屬性,請使用with nix 語言構造(ref)。

PS 你需要更正url = http://.

引用自:https://unix.stackexchange.com/questions/270342