Короткий ответ
Сообщение 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 |
Возможные причины
- Копипаста sources с другой major версии.
- Зеркало без
noble(старый внутренний mirror). arch=amd64vs arm64 образ.- PPA без
signed-by, Ubuntu 24.04 строже. - HTTP vs HTTPS редирект, прокси режет.
security.ubuntu.comнедоступен с этой сети (нужен прокси/зеркало security).- 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
timedatectlapt 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.gpgsudo 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 | tailEXPKEYSIG = ключ истёк/отозван, не «нет сети». Обновите 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 шумом.