如何在 configuration.nix 中添加 linux 配置
How to add linux config in configuration.nix
目前我的 nixpkgs.config
中有这个
packageOverrides = pkgs: rec {
netbeans81 = pkgs.stdenv.lib.overrideDerivation pkgs.netbeans ( oldAttrs: {
name = "netbeans-8.1";
src = pkgs.fetchurl {
url = http://download.netbeans.org/netbeans/8.1/final/zip/netbeans-8.1-201510222201.zip;
md5 = "361ce18421761a057bad5cb6cf7b58f4";
};
});
};
我想添加一个内核配置。我添加了这个
packageOverrides = pkgs: {
stdenv = pkgs.stdenv // {
platform = pkgs.stdenv.platform // {
kernelExtraConfig = "SND_HDA_PREALLOC_SIZE 4096";
};
};
};
但这没有用。问题是 packageOverrides 已经被定义了。
如何添加内核配置和我的 netbeans 覆盖?
在 nix 语言中,大括号 ({}
) 表示属性集(不像 C++ 等中的作用域)。您可以在一个属性集中包含多个项目(属性集就像 python 中的字典)。此外,nix 是一种函数式语言,这意味着没有状态。反过来,这意味着您不能在同一范围内重新定义变量。用 Eminem 的话来说,"You only get one shot".
试试这个:
packageOverrides = pkgs: rec {
netbeans81 = pkgs.stdenv.lib.overrideDerivation pkgs.netbeans (oldAttrs: {
name = "netbeans-8.1";
src = pkgs.fetchurl {
url = http://download.netbeans.org/netbeans/8.1/final/zip/netbeans-8.1-201510222201.zip;
md5 = "361ce18421761a057bad5cb6cf7b58f4";
};
});
stdenv = pkgs.stdenv // {
platform = pkgs.stdenv.platform // {
kernelExtraConfig = "SND_HDA_PREALLOC_SIZE 4096";
};
};
};
目前我的 nixpkgs.config
中有这个packageOverrides = pkgs: rec {
netbeans81 = pkgs.stdenv.lib.overrideDerivation pkgs.netbeans ( oldAttrs: {
name = "netbeans-8.1";
src = pkgs.fetchurl {
url = http://download.netbeans.org/netbeans/8.1/final/zip/netbeans-8.1-201510222201.zip;
md5 = "361ce18421761a057bad5cb6cf7b58f4";
};
});
};
我想添加一个内核配置。我添加了这个
packageOverrides = pkgs: {
stdenv = pkgs.stdenv // {
platform = pkgs.stdenv.platform // {
kernelExtraConfig = "SND_HDA_PREALLOC_SIZE 4096";
};
};
};
但这没有用。问题是 packageOverrides 已经被定义了。
如何添加内核配置和我的 netbeans 覆盖?
在 nix 语言中,大括号 ({}
) 表示属性集(不像 C++ 等中的作用域)。您可以在一个属性集中包含多个项目(属性集就像 python 中的字典)。此外,nix 是一种函数式语言,这意味着没有状态。反过来,这意味着您不能在同一范围内重新定义变量。用 Eminem 的话来说,"You only get one shot".
试试这个:
packageOverrides = pkgs: rec {
netbeans81 = pkgs.stdenv.lib.overrideDerivation pkgs.netbeans (oldAttrs: {
name = "netbeans-8.1";
src = pkgs.fetchurl {
url = http://download.netbeans.org/netbeans/8.1/final/zip/netbeans-8.1-201510222201.zip;
md5 = "361ce18421761a057bad5cb6cf7b58f4";
};
});
stdenv = pkgs.stdenv // {
platform = pkgs.stdenv.platform // {
kernelExtraConfig = "SND_HDA_PREALLOC_SIZE 4096";
};
};
};