目前使用在Mac OS X上的尼克斯通道將包裝使用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中用更新的依賴關係重建軟件包最直接的方法?
目前使用在Mac OS X上的尼克斯通道將包裝使用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;
};
};
}
重寫仙丹包不足以讓構建工作,爲構建工具鋼筋上還建使用二郎18.一旦指定了,我跑nix-env -i elixir
和兩個包的源被下載和使用Erlang的19
一個警告內置:即使這些更改config.nix
尼克斯上下載Erlang的18包堅持。但是,這並未在構建中實際使用,並在運行nix-collect-garbage -d
時被刪除。螺紋鋼和靈藥衍生物都沒有引用這個軟件包,所以原因仍然是一個謎。
感謝@ zimm-i48,以便參考相應的nix文檔。也有用是盧卡布魯諾對尼克斯系列博客文章的:
http://lethalman.blogspot.it/2014/07/nix-pill-7-working-derivation.html
你可能會考慮使用工具版本管理器。例如asdf通過插件支持erlang和elixir。它允許您輕鬆地爲每個項目指定一個版本並管理他們的安裝。
卸載並安裝Erlang的一次。恐怕現在沒有捷徑了。 Erlang不是混合依賴項,但是它是你建立的一個層。 – PatNowak
事實上,如果你使用brew,你必須更新Erlang'brew update && brew upgrade erlang && brew cleanup erlang' – jbernardo
我相信這個問題被問及[nix軟件包管理器](https://nixos.org /尼克斯/)。與混合無關。 –