คำแนะนำทั้งหมดที่ฉันค้นหาเพื่อสร้างที่เก็บโลคัลของแพ็กเกจ Nix เกี่ยวข้องกับการสร้างโคลนโลคัลของที่nixpkgs
เก็บหลักและเพิ่มลงในนั้น
มีวิธีที่ฉันสามารถสร้างพื้นที่เก็บข้อมูลขนาดเล็กเพียงแค่มีแพคเกจ Add-on ท้องถิ่นของฉัน?
คำแนะนำทั้งหมดที่ฉันค้นหาเพื่อสร้างที่เก็บโลคัลของแพ็กเกจ Nix เกี่ยวข้องกับการสร้างโคลนโลคัลของที่nixpkgs
เก็บหลักและเพิ่มลงในนั้น
มีวิธีที่ฉันสามารถสร้างพื้นที่เก็บข้อมูลขนาดเล็กเพียงแค่มีแพคเกจ Add-on ท้องถิ่นของฉัน?
คำตอบ:
ใช่เพียงแค่สร้างนิพจน์สำหรับแพ็คเกจเดียว คุณจะได้รับการอ้างอิงจาก nixpkgs pkgs = import <nixpkgs> {};
โดย
โพสต์บล็อกนี้มีรายละเอียดบางอย่าง: http://sandervanderburg.blogspot.no/2014/07/managing-private-nix-packages-outside.html
สำหรับรายละเอียดในระดับต่ำจากพื้นดินมากขึ้นมีซีรีส์ระวังยา: 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
แต่เนื่องจากระวังจะขึ้นอยู่กับภาษาเต็มเป่ามีวิธีอินฟินิตี้ที่คุณสามารถทำได้ฉันเดา
ฉันไม่เคยเป็นผู้เชี่ยวชาญระวังเลยฉันไม่รู้ว่านี่เป็นวิธีที่ดีที่สุดหรือเปล่า แต่นั่นคือสิ่งที่ฉันทำ ฉันมี repo ท้องถิ่นสำหรับแพคเกจใน$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
คุณสามารถดู repo เต็มได้ที่https://github.com/telent/nix-local