Nix 패키지의 로컬 리포지토리를 생성하는 데 필요한 모든 지침에는 기본 nixpkgs
리포지토리 의 로컬 클론을 생성 하고 추가하는 것이 포함됩니다.
로컬 애드온 패키지 만 포함하여 작은 리포지토리를 만들 수있는 방법이 있습니까?
Nix 패키지의 로컬 리포지토리를 생성하는 데 필요한 모든 지침에는 기본 nixpkgs
리포지토리 의 로컬 클론을 생성 하고 추가하는 것이 포함됩니다.
로컬 애드온 패키지 만 포함하여 작은 리포지토리를 만들 수있는 방법이 있습니까?
답변:
예, 단일 패키지에 대한 표현식을 작성하십시오. 로 nixpkgs에서 종속성을 얻을 수 있습니다 pkgs = import <nixpkgs> {};
.
이 블로그 게시물에는 몇 가지 세부 정보가 있습니다. 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
가져 와서 기본 "REPO"에서 종속성을 추가 <nixpkgs>
.
다음을 수행하여 패키지 설치 nix-env -f mypkgs.nix -i DERIVATION_NAME
그러나 nix는 완전한 언어를 기반으로하기 때문에 당신이 할 수있는 무한한 방법이 있습니다.
나는 결코 Nix 전문가가 아니므로 이것이 최선의 방법인지 모르겠지만 그것이 내가하는 일입니다. 나는에서 패키지에 대한 로컬 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
https://github.com/telent/nix-local 에서 전체 저장소를 볼 수 있습니다