NixOS / nixpkg에 대한 로컬 저장소를 작성하는 방법


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가져 와서 기본 "REPO"에서 종속성을 추가 <nixpkgs>.

다음을 수행하여 패키지 설치 nix-env -f mypkgs.nix -i DERIVATION_NAME

그러나 nix는 완전한 언어를 기반으로하기 때문에 당신이 할 수있는 무한한 방법이 있습니다.


1

나는 결코 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 에서 전체 저장소를 볼 수 있습니다


4
2017에 대한 때문에이 글을 읽는 사람에게,이 REPO는 packageOverrides이해야 할 무엇을 사용 할 수있는 많은 청소기 방법으로 현재 유지되지 않고, 난 강력하게 당신이 "오버레이"를 읽어 제안
TELENT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.