LINUX.ORG.RU

Обновление nixos по тегам to-release

 


0

1

Есть в nixpkg теги backport-*-to-release-26.05. Поставил тег backport-559994-to-release-26.05. Обновляюсь и начало собирать мне firefox из сорсов. Воу-воу-воу, так не пойдет. А как правильно обновляться, чтобы такого не было? Брать какой-то месячной давности xxxxxx-to-release или как правильно?

★★★★★

Всё так потому что backport-*-to-release-26.05 указывает на конкретный коммит сразу после бэкпорта, который ещё не собран и не попал в cache.nixos.org. Обновляйся через дефолтную ветку или если прям нужно, то можно посмотреть на status.nixos.org какой коммит для текущей версии собран. На мой взгляд проще управлять таким через флейки.

Berliner
()
Последнее исправление: Berliner (всего исправлений: 1)
Ответ на: комментарий от Berliner

Я думал, что это типа контрольных точек, чтобы можно было на них фиксироваться. А на каких же коммитах тогда фиксироваться?

status мне показывает

staging-next-26.05 iteration 6 - 2026-08-28 (#557258)
https://github.com/NixOS/nixpkgs/commit/6713828a351efa628b025a1adf7f43cbf8597513
bryak ★★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 2)
Ответ на: комментарий от bryak

А на каких же коммитах тогда фиксироваться?

Опять же, фиксироваться намного проще с флейками это намного более удобный инструмент как для фиксирования версий, так и для последующей репродукции системы. Есть ли какая-то причина использовать именно такой способ и если да, то скажи какая, может тогда мне станет понятно и я смогу более чётко сказать

Berliner
()
Ответ на: комментарий от Berliner

Тут скорей вопрос не чем именно фиксироваться, а стратегия фиксирования. Есть куча коммитов. Я беру сегодняшний любой и фиксируюсь. Если что-то не работает - беру любой другой и фиксируюсь на нём. Как-то странно это всё. Было бы логичней формировать какие-то «контрольные точки» типа release-126 release-518, где пачкой были бы коммиты каких-то пакетов. Мне флейки пока что не нужны

bryak ★★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от bryak

Но ведь они же есть.. буквально release-26.5 это и есть контрольная точка, далее будет release-26.11, по аналогии с убунтовским версионированием.

Вот так (imgur.com) это указано в flake.nix

А вот так (imgur.com) в configuration.nix

Berliner
()
Ответ на: комментарий от Berliner

Да нееееее, так же некрасиво. Оно при каждом использовании будет до последнего коммита обновляться. Но я понял, что nixos-26.05 <– на этот бренч надо фиксироваться на каком-то коммите внутри бренча. Спасибо

bryak ★★★★★
() автор топика
Ответ на: комментарий от bryak

Оно при каждом использовании будет до последнего коммита обновляться

При каждом использовании? Если ты имеешь в виду обновлении, то нет. Как раз таки эту проблему и решают флейки. Просто я не особо понимаю смысл именно в фиксации на коммите. Если понадобится обновить отдельный пакет или группу пакетов, то придётся полностью менять коммит, когда как во флейках есть файл flake.lock хранящий в себе информацию о пакетах и их версиях и можно отдельно обновлять через этот файл пакеты, причём даже копаться не надо будет в зависимостях, при обновлении лок файла условно при апдейте одного пакета также заменяется и хеш всех зависимостей.

Мне действительно интересно почему выбор именно таков? Я вижу только один вариант – система не будет обновляться вообще.

Berliner
()
Ответ на: комментарий от bryak

Да нееееее, так же некрасиво. Оно при каждом использовании будет до последнего коммита обновляться.

В этом плане flake работает как npm: версия залочена в flake.lock, обновляешься через обновление лок файла с помощью nix flake update

Правильно будет установить nixos-26.05, через оверлеи переопределять некоторые пакеты в unstable, и обновляться через nix flake update

MaZy ★★★★★
()
Ответ на: комментарий от bryak

Оно при каждом использовании будет до последнего коммита обновляться.

Пара опций и ничего не «обновляется» каждый раз при nix build/shell/run:

{ inputs, ... }:

{
  nix = {
    nixPath = [
      "nixpkgs=${inputs.nixpkgs}"
    ];
    registry.nixpkgs.flake = inputs.nixpkgs;
  };
}
kneedeep
()

Спасибо всем. Попробую что это за зверь такой, flakes

bryak ★★★★★
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария