gpt4 book ai didi

erlang - 更新 nix 包中的依赖项

转载 作者:行者123 更新时间:2023-12-02 01:31:44 24 4
gpt4 key购买 nike

目前在 Mac OS X 上使用 nix channel 提供的 Elixir 版本。该软件包是使用 Erlang 18 构建的:

$ iex --version
Erlang/OTP 18 [erts-7.3.1.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

IEx 1.4.2

我想更新包以使用 Erlang 19。使用更新的依赖项在 nix 中重建包的最直接方法是什么?

最佳答案

我能够通过将以下包覆盖添加到~/.nixpkgs/config.nix来找到解决方案:

{
packageOverrides = pkgs: rec {
elixir = pkgs.elixir.override {
erlang = pkgs.erlangR19_odbc_javac;
};
rebar = pkgs.rebar.override {
erlang = pkgs.erlangR19_odbc_javac;
};
};
}

覆盖 elixir 包不足以让构建工作,因为构建工具 rebar 也是使用 Erlang 18 构建的。指定后,我运行 nix-env -i elixir 并这两个包的源代码都是使用 Erlang 19 下载和构建的。

需要注意的是:即使对 config.nix 进行了这些更改,nix 仍然坚持下载 Erlang 18 软件包。然而,它实际上并没有在构建中使用,并且在运行 nix-collect-garbage -d 时被删除。钢筋和 Elixir 衍生物都没有引用该包,因此原因仍然是个谜。

感谢@zimm-i48 提供了相应 nix 文档的引用。 Luca Bruno 在 nix 上发布的一系列博客文章也很有用:

http://lethalman.blogspot.it/2014/07/nix-pill-7-working-derivation.html

关于erlang - 更新 nix 包中的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com