У меня есть коробка NixOS, которую я держу на nixos-16.03
канале. Я хочу, чтобы аппарат оставался в основном стабильном состоянии, и поэтому я хочу избежать переключения на nixos-unstable
канал.
Однако мне нужно установить более новую версию пакета, чем доступна в этом канале ( nodejs-6_x
в данном случае). В руководстве есть раздел, описывающий установку в один клик , которая на первый взгляд казалась именно тем, что мне было нужно. Однако сервер Hydra по адресу http://hydra.nixos.org , похоже, не обслуживает какие-либо .nixpkg
файлы, которые используются nix-install-package
инструментом, описанным в этом разделе.
Вики также документирует процесс, с помощью которого можно настроить пакет (страница называется « Модификация пакетов» ), который, я полагаю, мог бы быть использован для моих целей, хотя кажется, что я буду бороться с инструментом, а не с ним.
Я также спрашивал об этом в IRC (спасибо, что M-Ralith
терпеливо отвечал на мои невежественные вопросы!), Но я не совсем понимал, как его применять. Совет заключался в том, чтобы «переопределить src и версию в вашей конфигурации nixpkgs», что звучит так, как будто я могу написать выражение nix .nixpkgs/configuration.nix
и переопределить эти свойства для пакета в моем подписанном канале ( nixos-16.03
). Когда я спросил о пакетах, которых нет в канале, я посоветовал «указать весь пакет, а не просто переопределять src и версию», что, как я понимаю, означало, что мне нужно будет продублировать все выражение nix для пакета Я заинтересован вnix-env
Для пакетов, которые существуют в другом канале, который я хочу установить, но остаться на моем текущем канале, есть ли лучший способ? Такое ощущение, что я должен быть в состоянии сделать что-то подобное nix-build <url> | nix-env -i
. Что было бы идеально, так это установить его, но не иметь конфигурации, которая могла бы помешать его обновлению позже, если бы мой текущий канал наверстал упущенное.