Comment installer un package unique dans NixOS?

9

J'ai une boîte NixOS que je garde sur la nixos-16.03chaîne. Je veux que la machine reste dans un état principalement stable, et donc je veux éviter de passer au nixos-unstablecanal.

Cependant, j'ai besoin d'installer une version plus récente d'un package que celle disponible dans ce canal ( nodejs-6_xdans ce cas). Dans le manuel, il y a une section qui décrit l' installation en un clic , qui semblait au départ exactement ce dont j'avais besoin. Cependant, le serveur Hydra à http://hydra.nixos.org ne semble pas servir de .nixpkgfichiers utilisés par l' nix-install-packageoutil décrit dans cette section.

Le wiki documente également un processus par lequel on peut personnaliser un package (la page s'appelle Modifier les packages ), qui je suppose pourrait être utilisé à mes fins, bien qu'il semble que je combattrais l'outil plutôt que de l' utiliser .

J'ai également posé des questions à ce sujet dans IRC (merci d' M-Ralithavoir répondu patiemment à mes questions ignorantes!), Mais je ne comprenais pas très bien comment l'appliquer. Le conseil était de "remplacer src et la version dans votre configuration nixpkgs", ce qui me semble pouvoir écrire une expression nix dans .nixpkgs/configuration.nixet remplacer ces propriétés pour le package dans mon canal abonné ( nixos-16.03). Lorsque j'ai posé des questions sur les packages qui n'existent pas dans le canal, le conseil était de "spécifier le package entier plutôt que de simplement remplacer src et la version", ce qui signifie que je devrais dupliquer l'expression nix entière pour le package Je m'intéresse à.nix-env

Pour les packages qui existent dans un autre canal que je souhaite installer, mais qui restent sur mon canal actuel, existe-t-il une meilleure solution? J'ai l'impression que je devrais être capable de faire quelque chose comme ça nix-build <url> | nix-env -i. L'idéal serait d'installer celui-ci, mais de ne pas avoir de configuration qui pourrait l'empêcher d'être mis à niveau plus tard si ma chaîne actuelle devait rattraper son retard.

Ben Collins
la source

Réponses:

8

vous pouvez utiliser l' nix-envoutil

% nix-env -f https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz -iA tig

ou utiliser l' nix-buildoutil

% nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz -A tig

comment ça aide!

Rok Garbas
la source