Nixos
如何在 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’顯示詳細的位置資訊)建構系統配置…錯誤:未定義變數’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://
.