Как вернуть версию канала NixOS к версии, используемой в конкретной загрузочной записи (поколении)?

Как вернуть версию канала NixOS к версии, используемой в конкретной загрузочной записи (поколении)?

Я использую NixOS нестабильный, и я делал это nixos-rebuild boot --upgradeнесколько раз, и обнаружил, что некоторые приложения сломаны. Вероятно, это какая-то временная несовместимость / ломающее изменение в зависимостях, которое в конечном итоге будет устранено.

Мне удалось идентифицировать, и теперь я запускаю (загружаю) полностью рабочее поколение:

  • Полностью работоспособное поколение — это поколение, отстающее на несколько поколений, а не предыдущее.

Теперь я хотел бы перейти к состоянию до этих обновлений:

  1. Я хочу вернуться к полностью рабочему поколению:
    • сделать его загрузочным поколением по умолчанию,
    • или создать новый (идентичный) и поместить его поверх всех поколений,
  2. Я хочу вернуть канал nix к версии, используемой этим поколением:
    • иметь возможность вносить изменения configuration.nixи применять их с помощью nixos-rebuild.

решение1

sudo nix-channel --rollback Nвозвращает каналы к генерации N. Вы можете использоватьэтотчтобы вернуться к текущему поколению:sudo nix-channel --rollback "$(grep --files-with-matches --fixed-strings "$(cut --delimiter=. --fields=3 /run/current-system/nixos-version)" /nix/var/nix/profiles/per-user/root/channels-*-link/nixos/svn-revision | tail --lines=1 | cut --delimiter=- --fields=3)"

Связанный контент