将运行时依赖项注入到nix包中

dvc

通过覆盖buildInputs将运行时依赖项添加到程序包将导致程序包重建。是否有一种简单的方法可以将运行时依赖项注入到程序包中而无需重新编译?

所以基本上将package / bin添加到PATH并将package / lib添加到LD_LIBRARY_PATH

akavel

如果我正确理解要调整运行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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何实现春天依赖注入在运行时?

gradle将传递性运行时依赖项包含为编译依赖项

Guice运行时依赖项参数重新注入

在运行时在Eclipse中查找依赖包

OSGi中仅运行时依赖项的最佳实践

在Python轮子中包括运行时依赖项

Nix中的构建与运行时依赖关系

Angular2在运行时将AppModule的服务注入到依赖的NgModule的组件中吗?

Eclipse为什么将Maven运行时依赖项转换为编译依赖项?

如何在Inno Setup安装程序中捆绑来自NuGet软件包的仅运行时依赖项?

C#依赖注入运行时(动态)注册

依赖注入可解决运行时数据的依赖

指定Nix包运行时依赖项

如何在运行时控制OSGi中的依赖项注入

Google Guice运行时依赖项注入

当依赖项需要运行时值时,如何注入依赖项?

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

使用依赖项注入在运行时确定实现

在运行时将一行代码注入到现有方法中

如何在SBT中将依赖项设置为运行时(以模仿Maven中的运行时作用域)?

将Android Gradle插件添加为运行时依赖项

如何使用简单的注入器在运行时更改依赖项

如何使用Bluemix Liberty运行时将EntityManager注入到EJB中?

ASP.NET Core依赖项注入:服务在运行时使用Func委托解析

使用Google Guice在运行时注入依赖项

Java:我可以在运行时将运行时异常注入到任意类方法中吗?

将运行时数据传递给通过依赖注入注入的服务

温莎城堡在嵌套类中注入依赖项,根接口在运行时解析

React & Webpack & Docker:在生产环境中在运行时将 env 注入到 docker-container