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