Ich habe eine NixOS-Box, die ich auf dem nixos-16.03
Kanal habe. Ich möchte, dass die Maschine in einem weitgehend stabilen Zustand bleibt, und möchte daher vermeiden, auf den nixos-unstable
Kanal umzuschalten.
Ich muss jedoch eine neuere Version eines Pakets installieren, als in diesem Kanal verfügbar ist ( nodejs-6_x
in diesem Fall). Im Handbuch gibt es einen Abschnitt, der die One-Click-Installation beschreibt , der auf den ersten Blick genau das schien, was ich brauchte. Der Hydra-Server unter http://hydra.nixos.org scheint jedoch keine .nixpkg
Dateien bereitzustellen, die von dem nix-install-package
in diesem Abschnitt beschriebenen Tool verwendet werden .
Das Wiki dokumentiert auch einen Prozess, mit dem man ein Paket anpassen kann (die Seite heißt " Pakete ändern" ), das vermutlich für meine Zwecke verwendet werden könnte, obwohl es so aussieht, als würde ich das Tool eher bekämpfen als verwenden .
Ich habe auch im IRC danach gefragt (danke M-Ralith
für die geduldige Beantwortung meiner unwissenden Fragen!), Aber ich habe nicht ganz verstanden, wie ich es anwenden soll. Der Rat war, "src und version in Ihrer nixpkgs-Konfiguration zu überschreiben", was so klingt, als könnte ich einen nix-Ausdruck schreiben .nixpkgs/configuration.nix
und diese Eigenschaften für das Paket in meinem abonnierten Kanal ( nixos-16.03
) überschreiben . Als ich nach Paketen fragte, die nicht im Kanal vorhanden sind, lautete der Rat, "das gesamte Paket anzugeben, anstatt nur src und version zu überschreiben", was bedeutet, dass ich den gesamten nix-Ausdruck für das Paket duplizieren müsste Ich bin interessiert an.nix-env
Gibt es für Pakete, die in einem anderen Kanal vorhanden sind , den ich installieren möchte, aber auf meinem aktuellen Kanal bleiben, einen besseren Weg? Es fühlt sich fast so an, als ob ich in der Lage sein sollte, so etwas zu tun nix-build <url> | nix-env -i
. Ideal wäre es, diese zu installieren, aber keine Konfiguration zu haben, die möglicherweise verhindert, dass sie später aktualisiert wird, wenn mein aktueller Kanal aufholt.