向Nix中的现有软件包添加和安装运行时依赖项的最佳方法?

问题描述 投票:1回答:1

[使用nix-env -i <pkg>在Nix中安装软件包,并使用source ~/.nix-profile/etc/profile.d/nix.sh添加Nix环境会导致该软件包出现在$PATH的顶部,这通常是理想的。

如果我想为已经存在的程序包安装并指定运行时依赖项(例如pythonperl解释器,但又不想在其余的程序包和系统环境中显示此依赖项,该怎么办?

就我而言,我想将perl依赖项添加到fzf package,因为它使用了perl here。但是出于兼容性原因,我不希望它在系统的其余部分中出现。

我尝试用fzf覆盖packageOverrides,但首先它似乎仅对构建依赖项有效,其次,没有参数指定perl

nix
1个回答
0
投票

通常,在调用真实的可执行文件之前,您会使用wrapProgram来替换可执行文件,该脚本会修改PATH

在这种情况下,它有点复杂,因为它不是独立程序,而是要导入的脚本,所以它不能使用包装器。在postInstall中,您可以使用substituteInPlace,看起来像

© www.soinside.com 2019 - 2024. All rights reserved.