我找到的有关创建Nix软件包的本地存储库的所有说明都涉及创建主nixpkgs
存储库的本地克隆并将其添加到其中。
有什么办法可以创建一个仅包含本地附加软件包的小型存储库?
我找到的有关创建Nix软件包的本地存储库的所有说明都涉及创建主nixpkgs
存储库的本地克隆并将其添加到其中。
有什么办法可以创建一个仅包含本地附加软件包的小型存储库?
Answers:
该博客文章有一些详细信息:http : //sandervanderburg.blogspot.no/2014/07/managing-private-nix-packages-outside.html
有关底层的更多详细信息,请参阅nix-pill系列:http://lethalman.blogspot.no/2014/07/nix-pill-1-why-you-should-give-it- try.html
但是我认为基本方法是创建自己的版本~/.nix-defexpr/channels_root/nixos/pkgs/top-level/all-packages.nix
,例如,mypkgs.nix
通过导入从默认“仓库”中添加依赖项<nixpkgs>
。
通过执行安装软件包 nix-env -f mypkgs.nix -i DERIVATION_NAME
但是由于nix是基于一种成熟的语言,所以我想您可以采用无限的方式来做到这一点。
我绝不是尼克斯专家,所以我不知道这是否是最好的方法,但这就是我的工作。我在中有软件包的本地仓库$HOME/nix-local
,其中包含许多软件包文件vault/default.nix
,blackbox/default.nix
等等,以及一个config.nix
定义packageOverrides
为调用它们的文件。所以像这样:
$ cat nix-local/config.nix
{
packageOverrides = pkgs: rec {
vault = pkgs.callPackage ./vault {};
blackbox = pkgs.callPackage ./blackbox {};
# ...
}
$ export NIXPKGS_CONFIG=$HOME/nix-local/config.nix
您可以在https://github.com/telent/nix-local上查看完整的回购