Воспроизводимый nix-env -i только с Nix, без NixOS - PullRequest
0 голосов
/ 11 июня 2018

Я использую только Nix в качестве менеджера пакетов и не использую все NixOS.Я хотел бы получить воспроизводимый пакетный пакет nix-env -i, который можно использовать совместно и создать резервную копию.

Мне известно об использовании config.nix for для NixOS, но я ищу аналогичную функциональность только с пакетами Nix.

1 Ответ

0 голосов
/ 11 июня 2018

В 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 .

...