通过覆盖buildInputs将运行时依赖项添加到程序包将导致程序包重建。是否有一种简单的方法可以将运行时依赖项注入到程序包中而无需重新编译?
所以基本上将package / bin添加到PATH并将package / lib添加到LD_LIBRARY_PATH
如果我正确理解要调整运行Nix的应用程序时使用的环境,而不是构建它时使用的环境,那么我知道的一种方法如下。通过使用它,您实际上创建了一个包装脚本,该脚本将覆盖“默认命令”。因此,类似于创建一个自定义~/bin/vim
脚本之类的事情,该脚本向默认的vim二进制文件添加了一些选项/ env覆盖,在脚本内部用“硬编码的原始路径”进行调用。
在nixpkgs它的一个例子是如何vimutils.vimWithRC覆盖vim
与自定义脚本命令。供您自己使用,您可以编写类似以下的内容:
with import <nixpkgs> {};
writeScriptBin "vim" ''
#!/usr/bin/env bash
export PATH=package/bin:$PATH # whatever you like; I've added what you asked for
export LD_LIBRARY_PATH=package/lib:$LD_LIBRARY_PATH
${vim}/bin/vim --my-options "$@"
'';
如果您将其放入my-vim.nix
,则应该能够通过以下方式进行安装:
$ nix-env -e vim # REMOVE NORMAL VIM. I think this should be done first to avoid conflict
$ nix-env -i -f my-vim.nix
希望它能正常工作,并为您“覆盖”默认的vim。
免责声明:抱歉,我实际上没有以这种确切的形式对其进行过测试。不幸的是,目前没有便携式的Nix控制台。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句