Короткий ответ

Сообщение Release file / 404 .../dists/jammy/Release значит: apt ходит не туда или suite не существует на этом зеркале. Не подменяйте jammy на noble в том же install — это ломаный upgrade. Сверьте lsb_release -sc с Suites в DEB822 (24.04: /etc/apt/sources.list.d/ubuntu.sources) или one-line (22.04). Подпись: ubuntu-keyring и Signed-By. Зеркало: archive.ubuntu.com / ru.archive.ubuntu.com / зеркало площадки. DNS и часы — отдельные статьи, но без них TLS/Valid-Until тоже красные.

Хост host.example (10.0.20.10).

Симптомы и как отличить

  • E: The repository 'http://archive.ubuntu.com/ubuntu lunar Release' does not have a Release file — EOL suite;
  • 404 на dists/noble-updates/main/binary-amd64/Packages;
  • NO_PUBKEY 3B4FE6ACC0B21F32 (пример старого ключа — сверяйте свой вывод);
  • lock — dpkg, не репо.
КодСмысл
404нет пути/suite на зеркале
403политика зеркала/прокси
NO_PUBKEY / EXPKEYSIGнет ключа в trusted.gpg.d
HASH SUM MISMATCHбитый кэш/зеркало
Valid-Untilчасы или старый InRelease

Возможные причины

  1. Копипаста sources с другой major версии.
  2. Зеркало без noble (старый внутренний mirror).
  3. arch=amd64 vs arm64 образ.
  4. PPA без signed-by, Ubuntu 24.04 строже.
  5. HTTP vs HTTPS редирект, прокси режет.
  6. security.ubuntu.com недоступен с этой сети (нужен прокси/зеркало security).
  7. cloud image с mirror:// и сломанным search.

Диагностика

lsb_release -a
dpkg --print-architecture
cat /etc/os-release

Файлы:

grep -rH --line-number . /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null

Проверка URL руками (подставьте свой suite: jammy или noble):

curl -sI https://archive.ubuntu.com/ubuntu/dists/noble/InRelease | head
curl -sI http://security.ubuntu.com/ubuntu/dists/noble-security/InRelease | head
resolvectl query archive.ubuntu.com
timedatectl

apt debug:

sudo apt-get update -o Debug::Acquire::http=true 2>&1 | tail -n 40

Ключи:

apt-key list 2>/dev/null | head
ls /etc/apt/trusted.gpg.d/
ls /usr/share/keyrings/

apt-key deprecated, но на 22.04 ещё встречается. На 24.04 ориентир — Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg.

Решение

Сценарий A. Неверный suite

Верните jammy на 22.04, noble на 24.04. Компоненты: main restricted universe multiverse по политике.

Пример DEB822 (24.04), не копируйте suite на 22.04:

Types: deb
URIs: http://archive.ubuntu.com/ubuntu
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Отдельный stanza для security:

Types: deb
URIs: http://security.ubuntu.com/ubuntu
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
sudo apt-get update

Сценарий B. Внутреннее зеркало отстало

Переключите на archive.ubuntu.com временно или догоните rsync зеркала (не debmirror в этой статье). Не указывайте lunar/mantic на LTS хосте.

Сценарий C. PPA без ключа

Types: deb
URIs: https://ppa.launchpadcontent.net/example/ppa/ubuntu
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/example-ppa.gpg

Ключ кладёте в keyrings сами из Launchpad, не в trusted.gpg вслепую.

Сценарий D. EOL / несуществующий релиз в файле

Удалите stanza. Если хост действительно на EOL — план upgrade через do-release-upgrade, не подмена строк.

Сценарий E. Прокси

sudo apt-config dump | grep -i proxy

Исправьте /etc/apt/apt.conf.d/01proxy. Проверьте curl через тот же прокси.

Внутреннее зеркало, EOL и signed-by на 24.04

Если зеркало снято rsync'ом без dists/noble-security, apt-get update частично зелёный (archive ок, security 404). Тогда security-пакеты не приходят, а вы думаете, что «репо работает». Смотрите каждую строку update, не код возврата первой.

EOL-релизы Ubuntu снимают с archive и переносят на old-releases.ubuntu.com. Случайная строка kinetic в sources на LTS-хосте даёт 404. Удаляйте, не «чините URL».

На 24.04 без Signed-By apt отказывается от репозитория. Старый one-line deb http://ppa... jammy main без ключа в trusted может ещё работать на 22.04 и упасть после upgrade на 24.04. Перед do-release-upgrade приведите PPA к DEB822+keyring.

Проверка подписи вручную:

curl -sL https://archive.ubuntu.com/ubuntu/dists/noble/InRelease | head -n 20

Должны быть поля Origin: Ubuntu, Suite: noble, Date близкая к текущей. Если Date из прошлого на месяцы — зеркало застыло или часы хоста в будущем режут Valid-Until.

Не добавляйте deb [trusted=yes]: это отключение подписи, не hotfix 404.

Компонент multiverse/restricted на внутреннем зеркале часто не синхронизируют. Тогда 404 только на oracle-java и драйверы, main жив. Не меняйте suite из‑за одного пакета: либо добавьте карман на зеркало, либо поставьте пакет с официального archive точечно.

apt-get update с Acquire::Languages=none уменьшает лишние Translation-404, которые путают при чтении лога. Это не лечение отсутствующего Release.

Проверка, что signed-by файл существует и не пустой:

ls -l /usr/share/keyrings/ubuntu-archive-keyring.gpg
sudo apt-get update -o Debug::Acquire::gpgv=true 2>&1 | tail

EXPKEYSIG = ключ истёк/отозван, не «нет сети». Обновите ubuntu-keyring с уже рабочего носителя (ISO/другой хост), если сеть до archive есть, но ключ старый.

Suite: noble в InRelease должен совпасть с VERSION_CODENAME в /etc/os-release. Расхождение = вы смотрите не тот хост или chroot. В buildchroot это нормально; на проде host.example — нет.

Зеркало с собственным Release без подписи Ubuntu keyring требует вашего ключа в Signed-By. Корпоративный re-sign: положите ключ в /usr/share/keyrings/corp-archive.gpg и укажите его; не trusted=yes.

by-hash на новых Ubuntu уменьшает mismatch при обновлении зеркала в момент update. Если внутреннее зеркало обрезает by-hash каталоги, получите 404 на хешах при живом Packages. Включите by-hash на зеркале или временно Acquire::By-Hash=0 как диагностика, не как постоянная политика.

Как проверить, что проблема устранена

sudo apt-get update
apt-cache policy ubuntu-minimal
. /etc/os-release; echo "$UBUNTU_CODENAME"

update без 404 и без «does not have a Release file». policy показывает ожидаемый suite.

С admin@10.0.20.10 достаточно успешного update в журнале timer.

Если не помогло

  • Только security 404: файрвол режет security.ubuntu.com, настройте зеркало security.
  • IPv6 висит: Acquire::ForceIPv4=true как диагностика, не как вечная костыль без понимания сети.
  • Страна-зеркало отдаёт битый InRelease — смените country mirror.

Профилактика

  • Бэкап sources.list* до правок.
  • Внутреннее зеркало с мониторингом свежести InRelease.
  • Не добавлять случайные deb из блогов без signed-by.
  • Upgrade LTS только официальным путём.

FAQ

Можно ли Acquire::AllowInsecureRepositories?

Нет как решение. Это отключение проверки подписи.

22.04 ещё на sources.list?

Да, типично. 24.04 cloud/server — ubuntu.sources. Оба формата apt понимает; не дублируйте одни и те же URI дважды.

ports.ubuntu.com?

Для arm64/ppc. amd64 ходит на archive. Неверный порт-архив даёт 404.

Почему noble-updates отдельно?

Карман updates. Без него получите только release pocket — старее.

cdrom в sources

Уберите на сервере без ISO. Мешает update шумом.