apt update не работает: перевод старого Debian на архив

Опубликовано Обновлено 5 мин. чтения

После окончания поддержки версии Debian команда apt update обрывается с ошибкой 404. Как перевести sources.list на archive.debian.org и снова сделать сервер обновляемым.

Вы запускаете apt update на старом сервере Debian, и вместо списка пакетов появляются только сообщения об ошибках: «404 Not Found», «Release file is not valid yet» или «Repository does not have a Release file». В этом руководстве мы объясняем причину и показываем, как вернуть серверу возможность обновляться.

Затронуты все версии Debian, поддержка которых уже закончилась: Debian 8 (Jessie), Debian 9 (Stretch), Debian 10 (Buster), а в ближайшее время и Debian 11 (Bullseye).

Почему apt update не работает на старых версиях Debian

Для каждого выпуска Debian держит собственные серверы пакетов. Как только версия доходит до конца срока поддержки, она исчезает с обычных зеркал deb.debian.org и security.debian.org. Пакеты при этом не теряются, они просто переезжают: на archive.debian.org.

Ваш файл /etc/apt/sources.list по-прежнему указывает на старые адреса, поэтому apt и сообщает об ошибке 404. К этому добавляется вторая проблема: у файлов Release, лежащих в архиве, есть срок действия, который давно истёк. На этом apt тоже прерывается, даже если адреса указаны верно.

Обе проблемы решаются. Но важно понимать общую картину: Debian без поддержки больше не получает обновлений безопасности. Следующие шаги снова делают сервер управляемым, однако полноценное обновление системы они не заменяют.

Какая версия Debian работает на вашем сервере?

Проверьте это в первую очередь, потому что от версии зависят правильные адреса:

cat /etc/debian_version
lsb_release -a

Полученное кодовое имя (jessie, stretch, buster, bullseye) встречается затем во всех строках ниже.

Резервная копия sources.list и правка файла

Сначала сделайте резервную копию, чтобы в любой момент можно было вернуться назад:

cp /etc/apt/sources.list /etc/apt/sources.list.bak

Затем откройте файл в редакторе:

nano /etc/apt/sources.list

Удалите прежнее содержимое и впишите блок из следующего раздела, подходящий вашей версии. После этого проверьте дополнительно каталог /etc/apt/sources.list.d/: там часто лежат отдельные файлы с устаревшими адресами, из-за которых ошибка сохраняется.

Подходящие источники из архива

Debian 10 (Buster)

Поддержка закончилась в середине 2024 года, Buster полностью лежит в архиве:

deb http://archive.debian.org/debian/ buster main contrib non-free
deb-src http://archive.debian.org/debian/ buster main contrib non-free

deb http://archive.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ buster/updates main contrib non-free

Debian 9 (Stretch)

deb http://archive.debian.org/debian/ stretch main contrib non-free
deb-src http://archive.debian.org/debian/ stretch main contrib non-free

deb http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ stretch/updates main contrib non-free

Debian 8 (Jessie)

Jessie — классика среди таких сбоев, потому что многие старые инструкции в сети до сих пор ссылаются на security.debian.org. Для Jessie этот адрес больше ничего не отдаёт:

deb http://archive.debian.org/debian/ jessie main contrib non-free
deb-src http://archive.debian.org/debian/ jessie main contrib non-free

deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ jessie/updates main contrib non-free

deb http://archive.debian.org/debian/ jessie-backports main
deb-src http://archive.debian.org/debian/ jessie-backports main

Debian 11 (Bullseye)

Bullseye доходит до конца фазы LTS в августе 2026 года. После этого действует та же схема. Учтите, что начиная с Bullseye написание источника безопасности изменилось: теперь это не bullseye/updates, а bullseye-security:

deb http://archive.debian.org/debian/ bullseye main contrib non-free
deb-src http://archive.debian.org/debian/ bullseye main contrib non-free

deb http://archive.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://archive.debian.org/debian-security/ bullseye-security main contrib non-free

Пока Bullseye ещё поддерживается, правильным выбором остаются обычные зеркала. Переключайтесь только тогда, когда apt действительно сообщит об ошибке 404.

Замечание для более новых систем: начиная с Debian 13 (Trixie) источники пакетов по умолчанию ведутся не в /etc/apt/sources.list, а в формате deb822 в файле /etc/apt/sources.list.d/debian.sources. Там структура записи выглядит иначе, но принцип остаётся тем же.

Как заставить apt принять просроченные списки пакетов

После сохранения apt, скорее всего, продолжит прерываться, на этот раз с указанием на то, что файл Release просрочен. Для архивных версий это нормально. Укажите apt, что срок действия нужно игнорировать:

echo 'Acquire::Check-Valid-Until "false";' | tee /etc/apt/apt.conf.d/10-nocheckvalid

Если это нужно всего один раз, настройку можно передать прямо в вызов, не создавая отдельный файл:

apt-get -o Acquire::Check-Valid-Until=false update

После этого привычное обновление снова работает:

apt-get update
apt-get upgrade

Частые сообщения об ошибках и что они означают

  • «404 Not Found»: адрес в sources.list всё ещё указывает на обычное зеркало. Переключитесь на archive.debian.org.
  • «Release file ... is not valid yet» или «expired»: срок действия файла Release истёк. Задайте параметр Check-Valid-Until, как описано выше.
  • «The repository ... does not have a Release file»: чаще всего это опечатка в кодовом имени или обращение к suite, которой в архиве нет. Проверьте написание символ за символом.
  • «NO_PUBKEY» или «EXPKEYSIG»: ключ подписи старого выпуска истёк. Во многих случаях помогает переустановка пакета debian-archive-keyring.
  • Ошибка сохраняется, хотя sources.list уже исправлен: в /etc/apt/sources.list.d/ лежит ещё один файл со старыми адресами.

Постоянное решение: обновление или переустановка

Переход на архив возвращает сервер в управляемое состояние, но обновлений безопасности он не даёт. Поэтому для сервера, доступного из интернета, следующим шагом должен стать переход на поддерживаемую версию Debian.

Открыты два пути:

  1. Переустановка: в большинстве случаев это более быстрый и чистый вариант. Вы в любой момент можете самостоятельно переустановить сервер с актуальной операционной системой в личном кабинете. Перед этим сохраните свои данные и файлы конфигурации.
  2. Пошаговое обновление: Debian обновляется от версии к версии, то есть, например, с Buster на Bullseye, а затем на Bookworm. Прыжки сразу через несколько версий не поддерживаются и регулярно заканчиваются сломанной системой.

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

Частые вопросы

Почему apt update внезапно сообщает об ошибке 404?
Версия Debian дошла до конца срока поддержки. Пакеты переехали с обычных зеркал на archive.debian.org, а ваш sources.list по-прежнему указывает на старый адрес.
Какие версии Debian затронуты?
Все версии без поддержки, то есть Debian 8 (Jessie), Debian 9 (Stretch) и Debian 10 (Buster). Debian 11 (Bullseye) присоединится к ним после окончания фазы LTS в августе 2026 года.
Что означает сообщение о том, что файл Release просрочен?
У архивных файлов Release стоит давно истёкший срок действия. С настройкой Acquire::Check-Valid-Until apt принимает их несмотря на это.
Получу ли я после перехода на архив обновления безопасности?
Нет. Архив содержит только последнее состояние на момент окончания поддержки. Для сервера, доступного из интернета, постоянным решением остаётся только обновление системы или переустановка.
Можно ли обновиться сразу с Debian 8 на Debian 12?
Нет. Debian поддерживает переход только на следующую по счёту версию. Для очень старых систем переустановка, как правило, быстрее и заметно чище.

Debian apt sources.list archive.debian.org окончание поддержки Jessie Buster