Do-release-upgrade прерывается ещё до начала из-за истёкшего ключа стороннего репозитория: почему инструмент не отключил его сам и что сделать заранее

Что было. Обновление с 22.04 на 24.04 обрывается на этапе получения индексов с сообщением вида «Die folgenden Signaturen waren ungültig: EXPKEYSIG …» для репозитория стороннего производителя программы удалённого доступа. Инструмент обновления, который обычно сам отключает сторонние источники, на этот раз этого не сделал.

Почему. Инструмент отключает сторонние репозитории после того, как успешно обновит список пакетов. Если один из источников отвечает ошибкой подписи (истёк ключ, сменился ключ, репозиторий удалён), apt update внутри инструмента завершается с ошибкой раньше, и до отключения дело не доходит. Участники посоветовали отключить сторонние репозитории вручную до запуска; автор так сделал, обновление прошло. Подтверждено.

Подготовка к обновлению выпуска на сервере.

  1. Инвентаризация источников: ls /etc/apt/sources.list.d/, grep -rh '^deb\|^URIs' /etc/apt/sources.list.d/. Записать, что откуда стоит (apt-cache policy | grep -B1 'o=' | grep -v Ubuntu).
  2. Отключить сторонние источники: переименовать файлы в *.list.disabled/*.sources.disabled или закомментировать. Пакеты из них останутся установленными, но обновляться на новом выпуске будут только после возврата репозитория под новый выпуск (у многих поставщиков отдельные ветки jammy/noble).
  3. apt update && apt full-upgrade && apt autoremove, убедиться, что нет удержанных пакетов.
  4. Снимок виртуальной машины.
  5. do-release-upgrade из tmux через консоль.
  6. После обновления вернуть репозитории поочерёдно с правильным кодовым именем выпуска и новыми ключами в /etc/apt/keyrings/, apt update после каждого.

Если ошибка EXPKEYSIG появилась вне обновления. Ключ поставщика истёк, нужен новый с его сайта: скачать в /etc/apt/keyrings/vendor.gpg и убедиться, что источник указывает на этот файл через Signed-By. Команда apt-key устарела; ключи в trusted.gpg.d доверяются всем репозиториям сразу и от них уходят.

Про программы с собственными репозиториями (удалённый доступ, мессенджеры, браузеры, панели): на сервере их обычно быть не должно вовсе. Каждый сторонний репозиторий это ещё один участник, который может сломать обновление выпуска или подсунуть пакет с полными правами.

Обновление выпуска описано в документации Ubuntu Server.