如何在 nix 构建 shell 中设置 ulimit



我正在尝试为 nix 安装 certbot 软件包,但每次测试都失败,因为测试达到了系统上的打开文件限制。我已经修改了 certbot 安装脚本,刚好足以在patchPhase开始时打印出 ulimit,并发现允许打开的最大文件数为 256。但是,在我执行nix-shellnix-env的 shell 中,我的ulimit(硬和软(设置为 100000。

如何将该限制传播到certbot构建过程?我想避免试图弄清楚如何修改 certbot 使用的 python 构建脚本。

在 OSX 10.13 上运行 Bash shell。

手动提高 certbot.nix patchPhase节中的 ulimit 。事实证明,此更改在 certbot 构建脚本中的其余阶段传播。

  buildInputs = [ dialog ] ++ (with python2Packages; [ nose mock gnureadline ]);
  patchPhase = ''
    ulimit -n 8196
    substituteInPlace certbot/notify.py --replace "/usr/sbin/sendmail" "/run/wrappers/bin/sendmail"
    substituteInPlace certbot/util.py --replace "sw_vers" "/usr/bin/sw_vers"
  '';
  postInstall = ''

我将向nixpkgs提交补丁。

最新更新