#Что означает ошибка
E: Release file for ... is not valid yet Release file expired
E: Release file for http://... is not valid yet (invalid for another 2h 15min). Updates for this repository will not be applied. означает, что время на вашей машине отстаёт от времени репозитория: файл Release создан «в будущем» с точки зрения системных часов. Типично для виртуальных машин, контейнеров и систем без работающей NTP-синхронизации.
Решение — синхронизировать время, а не отключать проверку.
Проверьте дату и часовой пояс.
Ошибка возникает, когда системные часы расходятся с реальным временем: apt считает, что файл Release из будущего или уже просрочен. Нужно исправить дату и время.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Неверные системные часы | Дата отличается. | Синхронизируйте время. |
| Не работает NTP | Служба времени выключена. | Включите timedatectl set-ntp true. |
| Неверный часовой пояс | Сдвиг. | Выберите правильный. |
| Устаревший репозиторий | Он действительно просрочен. | Используйте актуальный. |
#Пошаговое решение
- Проверьте date и timedatectlОткройте терминал в Ubuntu/Debian сочетанием Ctrl+Alt+T, выполните
date -Isиtimedatectl status. Сверьте время с достоверным источником и проверьте строку System clock synchronized. Если часы сильно отстают, APT считает подписанный Release файлом из будущего — сначала исправьте часы, а не отключайте проверку срока действия. - Включите NTPОткройте терминал Linux и выполните
timedatectl status, затем при поддержке systemdsudo timedatectl set-ntp true. Проверьте через несколько минут строку «System clock synchronized: yes». Если NTP не синхронизируется, найдите действующую службу (systemctl status systemd-timesyncd chronyd) и настройте её официальным способом; не устанавливайте одновременно конкурирующие демоны времени. - Установите службу синхронизацииУстанавливать отдельную службу времени нужно только если
timedatectl statusпоказывает отсутствие синхронизации и в системе действительно нет действующей службы NTP. В Debian/Ubuntu обычно достаточноsudo timedatectl set-ntp true, затемtimedatectl timesync-status(при использовании systemd-timesyncd). Если команда сообщает, что NTP не поддерживается, проверьтеsystemctl status systemd-timesyncdи наличие chrony; не включайте две конкурирующие службы одновременно. В управляемой корпоративной сети NTP-сервер может быть задан администратором — уточните его адрес вместо случайной замены. - Для WSL и ВМ синхронизируйте время с хостомЕсли Ubuntu работает внутри WSL, откройте PowerShell в Windows и выполните
wsl --shutdown; затем вновь откройте Ubuntu и проверьтеdate. Если это обычная виртуальная машина, настройте синхронизацию часов гостя с гипервизором. Командаhwclockне гарантирует исправление часов внутри WSL и не нужна всем пользователям. - Повторите apt updateПосле синхронизации системных часов выполните
date -Isи сравните дату с реальной, затемsudo apt update. Если исчезлоRelease file is not valid yet, исправление сработало. Если появляетсяRelease file expired, время может быть верным, а зеркало — устаревшим: сравните дату файла Release и официальный список зеркал Debian/Ubuntu, затем выберите поддерживаемое зеркало, не отключая проверку срока действия (Acquire::Check-Valid-Until). Если часы снова сбиваются после перезагрузки, проверьте батарею часов и службу синхронизации. - Показывает время и состояние синхронизацииLinux · Терминал (Bash)КомандаПоказывает время и состояние синхронизации.
timedatectl status
#Диагностика
Выполните date и timedatectl. Сравните с реальным временем. Строки System clock synchronized: no и NTP service: inactive указывают на отсутствие синхронизации. В ВМ часы могут отставать после приостановки или миграции. Проверьте часовой пояс: timedatectl set-timezone Europe/Moscow (или ваш).
#Синхронизация
Включите NTP: sudo timedatectl set-ntp true. Если служба отсутствует: sudo apt install systemd-timesyncd (или chrony/ntpsec) и sudo systemctl enable --now systemd-timesyncd. Разовая синхронизация: sudo chronyc makestep или sudo ntpdate pool.ntp.org. Проверка: timedatectl timesync-status. Затем sudo apt update.
#Контейнеры и ВМ
В Docker время берётся с хоста: исправьте часы хоста. В WSL2 выполните sudo hwclock -s или перезапустите WSL (wsl --shutdown). В виртуальных машинах включите синхронизацию времени с хостом (гостевые дополнения) или NTP внутри ВМ. Аварийно (только временно!) можно запустить sudo apt -o Acquire::Check-Valid-Until=false update, но это не заменяет правильное время.
date -Istimedatectl status