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 для размещения комментария