Mam pudełko NixOS, które trzymam na nixos-16.03
kanale. Chcę, aby maszyna pozostała w większości stabilnym stanie, dlatego chcę uniknąć przełączania się na nixos-unstable
kanał.
Jednak muszę zainstalować nowszą wersję pakietu niż jest dostępna w tym kanale ( nodejs-6_x
w tym przypadku). W podręczniku znajduje się sekcja opisująca instalację jednym kliknięciem , która początkowo wydawała się dokładnie tym, czego potrzebowałem. Jednak serwer Hydra pod adresem http://hydra.nixos.org nie wydaje się obsługiwać żadnych .nixpkg
plików używanych przez nix-install-package
narzędzie opisane w tej sekcji.
Wiki dokumentuje również proces, w którym można dostosować pakiet (strona nazywa się modyfikowaniem pakietów ), co, jak sądzę, mogłoby być wykorzystane do moich celów, chociaż wydaje się, że raczej walczyłbym z narzędziem niż z nim korzystał .
Pytałem o to również w IRC (dzięki M-Ralith
za cierpliwe odpowiadanie na moje ignoranckie pytania!), Ale nie do końca rozumiałem, jak to zastosować. Porada brzmiała: „przesłonić src i wersję w konfiguracji nixpkgs”, co brzmi jakbym mógł napisać wyrażenie nix .nixpkgs/configuration.nix
i zastąpić te właściwości pakietu w moim subskrybowanym channel ( nixos-16.03
). Kiedy zapytałem o pakiety, które nie istnieją w kanale, poradziłem, aby „określić cały pakiet, a nie tylko zastąpić src i wersję”, co mam na myśli, że musiałbym zduplikować całe wyrażenie nix dla pakietu Interesuję się.nix-env
Czy istnieje lepszy sposób dla pakietów, które istnieją w innym kanale, który chcę zainstalować, ale pozostaję na bieżącym kanale? Wydaje mi się, że powinienem być w stanie zrobić coś takiego nix-build <url> | nix-env -i
. Idealne byłoby zainstalowanie tego jednego, ale brak konfiguracji, która mogłaby uniemożliwić jego późniejszą aktualizację, gdyby mój obecny kanał miał nadrobić zaległości.