Eu tenho uma caixa NixOS que eu mantenho no nixos-16.03
canal. Quero que a máquina permaneça em um estado praticamente estável e, portanto, desejo evitar mudar para o nixos-unstable
canal.
No entanto, preciso instalar uma versão mais recente de um pacote que esteja disponível nesse canal ( nodejs-6_x
nesta instância). No manual, há uma seção que descreve a instalação com um clique , que parecia a princípio exatamente o que eu precisava. No entanto, o servidor Hydra em http://hydra.nixos.org não parece estar fornecendo nenhum .nixpkg
arquivo usado pela nix-install-package
ferramenta descrita nessa seção.
O wiki também documenta um processo pelo qual se pode personalizar um pacote (a página é chamada de Modificando Pacotes ), que suponho que poderia ser usada para meus propósitos, embora pareça que eu estaria lutando com a ferramenta em vez de usá- la.
Também perguntei sobre isso no IRC (obrigado M-Ralith
por responder pacientemente às minhas perguntas ignorantes!), Mas não entendi direito como aplicá-lo. O conselho foi "substituir o src e a versão na sua configuração do nixpkgs", que parece que eu poderia escrever uma expressão nix .nixpkgs/configuration.nix
e substituir essas propriedades do pacote no meu canal inscrito ( nixos-16.03
). Quando perguntei sobre pacotes que não existem no canal, o conselho era "especificar o pacote inteiro em vez de substituir o src e a versão", o que entendo que seria necessário duplicar toda a expressão nix do pacote Estou interessado.nix-env
Para pacotes que existem em outro canal que eu quero instalar, mas permaneço no meu canal atual, existe uma maneira melhor? Quase parece que eu deveria ser capaz de fazer algo assim nix-build <url> | nix-env -i
. O que seria ideal é instalar este, mas não ter uma configuração que possa impedir que ele seja atualizado mais tarde, se meu canal atual for atualizado.