Como eu crio um repositório local para o NixOS / nixpkgs?

13

Todas as instruções que eu encontrei para criar um repositório local de pacotes Nix envolvem a criação de um clone local da principal árvore nixpkgs e a adição a ele.

Existe alguma maneira de eu me importar com um pequeno repositório contendo apenas meus pacotes de complementos locais?

    
por Michael Ekstrand 07.02.2015 / 04:36

3 respostas

5

Sim, basta criar uma expressão para o pacote único. Você pode obter dependências do nixpkgs em pkgs = import <nixpkgs> {}; .

    
por 09.02.2015 / 21:41
3

Esta postagem do blog tem alguns detalhes: link

Para mais detalhes de baixo nível, a série nix-pill: link

Mas acho que a abordagem básica é criar sua própria versão de ~/.nix-defexpr/channels_root/nixos/pkgs/top-level/all-packages.nix , digamos mypkgs.nix adicionando dependências do repositório padrão, importando <nixpkgs> .

Instalar pacotes fazendo nix-env -f mypkgs.nix -i DERIVATION_NAME

Mas como o nix é baseado em uma linguagem completa, existem infinitas maneiras de fazer isso, eu acho.

    
por 29.01.2016 / 21:27
1

Não sou de modo algum um especialista em Nix, então não sei se é o melhor caminho, mas é o que eu faço. Eu tenho um repositório local para pacotes em $HOME/nix-local , que contém vários arquivos de pacotes vault/default.nix , blackbox/default.nix etc e um arquivo config.nix que define packageOverrides para chamá-los. Então, algo como:

$ cat nix-local/config.nix
{
  packageOverrides = pkgs: rec {
    vault = pkgs.callPackage ./vault {};
    blackbox = pkgs.callPackage ./blackbox {};
    # ...
}

$ export NIXPKGS_CONFIG=$HOME/nix-local/config.nix    

Você pode ver o repo completo no link

    
por 01.07.2015 / 11:16