В Nixpkgs вы можете использовать функцию buildEnv
для создания ферм символьных ссылок, аналогично тому, как nix-env
создает их.
Это позволяет группировать пакеты в группы, которые вы хотите обновить отдельно.Конечно, единственная группа является вполне допустимой, если она подходит для ваших приложений.
Вот пример greeting-tools.nix
:
let
pkgs = import <nixpkgs> {};
inherit (pkgs) buildEnv;
in buildEnv {
name = "greeting-tools";
paths = [ pkgs.hello pkgs.cowsay pkgs.figlet ];
}
Вы можете установить и удалить ее следующим образом
$ nix-env -i -f greeting-tools.nix
installing 'greeting-tools'
$ hello
Hello, world!
$ nix-env -e greeting-tools
uninstalling 'greeting-tools'
$ hello
The program ‘hello’ is currently not installed. [...]
Чтобы обновить ваши пакеты, вы должны повторно запустить команду установки.nix-env -u
не будет работать правильно, потому что он смотрит только на Nixpkgs, у которого , вероятно, нет ничего подобного.
Альтернативой может быть home manager .