[使用nix-env -i <pkg>
在Nix中安装软件包,并使用source ~/.nix-profile/etc/profile.d/nix.sh
添加Nix环境会导致该软件包出现在$PATH
的顶部,这通常是理想的。
如果我想为已经存在的程序包安装并指定运行时依赖项(例如python
或perl
解释器,但又不想在其余的程序包和系统环境中显示此依赖项,该怎么办?
就我而言,我想将perl
依赖项添加到fzf package,因为它使用了perl here。但是出于兼容性原因,我不希望它在系统的其余部分中出现。
我尝试用fzf
覆盖packageOverrides
,但首先它似乎仅对构建依赖项有效,其次,没有参数指定perl
。
通常,在调用真实的可执行文件之前,您会使用wrapProgram来替换可执行文件,该脚本会修改PATH
。
在这种情况下,它有点复杂,因为它不是独立程序,而是要导入的脚本,所以它不能使用包装器。在postInstall
中,您可以使用substituteInPlace,看起来像