如何为NixOS / nixpkgs创建本地存储库?


Answers:



5

该博客文章有一些详细信息: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是基于一种成熟的语言,所以我想您可以采用无限的方式来做到这一点。


1

我绝不是尼克斯专家,所以我不知道这是否是最好的方法,但这就是我的工作。我在中有软件包的本地仓库$HOME/nix-local,其中包含许多软件包文件vault/default.nixblackbox/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上查看完整的回购


4
对于自2017年以来阅读此文档的任何人,此回购协议目前尚未维护,我强烈建议您阅读“ overlays”,这是一种更简洁的方法来处理packageOverrides曾经做过的事情
Telent
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.