Tengo una caja de NixOS que guardo en el nixos-16.03
canal. Quiero que la máquina permanezca en un estado mayormente estable, por lo que quiero evitar cambiar al nixos-unstable
canal.
Sin embargo, necesito instalar una versión más nueva de un paquete que está disponible en ese canal ( nodejs-6_x
en este caso). En el manual, hay una sección que describe la instalación con un clic , que al principio parecía exactamente lo que necesitaba. Sin embargo, el servidor Hydra en http://hydra.nixos.org no parece estar sirviendo ningún .nixpkg
archivo que sea utilizado por la nix-install-package
herramienta descrita en esa sección.
La wiki también documenta un proceso mediante el cual se puede personalizar un paquete (la página se llama Modificación de paquetes ), que supongo que podría usarse para mis propósitos, aunque parece que estaría luchando contra la herramienta en lugar de usarla .
También pregunté sobre esto en IRC (¡gracias M-Ralith
por responder pacientemente a mis preguntas ignorantes!), Pero no entendí bien cómo aplicarlo. El consejo era "anular src y versión en su configuración nixpkgs", lo que parece que podría escribir una expresión nix .nixpkgs/configuration.nix
y anular esas propiedades para el paquete en mi canal suscrito ( nixos-16.03
). Cuando pregunté acerca de los paquetes que no existen en el canal, el consejo fue "especificar el paquete completo en lugar de simplemente anular src y versión", lo que considero que tendría que duplicar toda la expresión nix para el paquete Estoy interesado en.nix-env
Para los paquetes que existen en otro canal que quiero instalar, pero que permanecen en mi canal actual, ¿hay una mejor manera? Casi parece que debería poder hacer algo como eso nix-build <url> | nix-env -i
. Lo ideal sería instalarlo, pero no tener una configuración que impida que se actualice más adelante si mi canal actual se pone al día.