NixOS / nixpkgsのローカルリポジトリを作成するにはどうすればよいですか?


17

Nixパッケージのローカルリポジトリを作成するために見つけたすべての手順には、メインnixpkgsリポジトリのローカルクローンを作成して追加することが含まれます。

ローカルアドオンパッケージのみを含む小さなリポジトリを作成する方法はありますか?

回答:


6

はい、単一のパッケージの式を作成するだけです。によってnixpkgsから依存関係を取得できますpkgs = import <nixpkgs> {};


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

私は決してNixの専門家ではないので、これが最良の方法であるかどうかはわかりませんが、それは私がしていることです。私は中にパッケージのローカルレポ持っている$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年以来、これを読んで誰にも、このレポが現在維持されていないと私は強くあなたが「オーバーレイ」をよく読んで示唆し、packageOverridesを行うために使用何をすべきか非常にクリーンな方法
のtelnet
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.