31

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

4

2 回答 2

3

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

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

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

pkgs = import <nixpkgs> { config = (import ./config.nix);  };
于 2015-08-12T17:49:41.830 回答
0

尝试从configuration.nix跟踪文件交互,并首先尝试了解所有这些标志,PHP 文件是某种“启动引擎”我似乎没有任何可能的配置选项它只是用作运行切换某种类型并读取行 234-236(PHP) 它说它需要配置

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

于 2015-02-23T23:23:14.180 回答