Nix可组合派生选项


Nix Composable Derivation Options

我试图通过搜索nixpkgs源代码树的pkgs子文件夹,找出模块的定义来了解可用的选项,从而了解我在configuration.nix中针对特定程序可用的选项。然而,对于PHP,我遇到了一个麻烦的情况——它是一个特殊的派生,一个可组合的派生。我无法看到PHP中有哪些可用的选项——这些选项对于启用mcrypt、gd等特殊模块非常有帮助。任何帮助,这将是非常感激!

我花了一段时间才弄清楚这一点,但使用composeDerivation设置php包构建功能的正确方法是:

  # config.nix
  {
   packageOverrides = pkgs: rec {
      php = pkgs.php.merge {
        cfg = {
          imapSupport = false;
          intlSupport = false;
          fpmSupport = false;
        };
      };
   };
  }

这将覆盖php/default中指定的cfg中的默认值。nix (imapSupport, intlSupport和fpmSupport被关闭)。您可以将该文件放在~/.nixpkgs/config.nix中以在系统范围内活动,也可以在另一个nix文件中使用它来自定义全局nixpkgs:

pkgs = import <nixpkgs> { config = (import ./config.nix);  };

尝试从配置跟踪文件交互。nix,也试着理解所有这些标志,PHP文件是某种类型的"启动引擎",我似乎没有任何可能的配置选项,它只是用作某种类型的运行开关,读取行234-236(PHP)它说它需要配置

http://nixos.org/nixos/manual/sec-configuration-syntax.html#sec-nix-syntax-summary也非常清楚地显示了可能性。我再说一遍,我不喜欢那个引擎,但我认为所有进一步的配置都是用NixOS管理命令完成的,如果你解释一下你到底需要做什么,我将更容易帮助你。