Если при обновлении списка пакетов в Linux через apt update возникают ошибки, связанные с репозиториями, эта статья поможет вам вручную обновить список источников (sources.list) и избежать популярных проблем. Инструкция подойдет как новичкам, так и администраторам среднего уровня.
Почему появляется ошибка при обновлении apt и sources.list
- Некорректно задан адрес репозитория или зеркало в файле
/etc/apt/sources.list. - Истек или отсутствует ключ подписи репозитория (GPG key), из-за чего apt не доверяет пакетам.
- Проблемы с сетевым подключением или DNS на стороне клиента.
- Файл
sources.listили дополнительные списки в/etc/apt/sources.list.d/повреждены или содержат временные файлы.
Пошаговое решение
- Проверка и резервное копирование текущего файла sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backupСоздаем копию на случай ошибок, чтобы иметь возможность восстановить исходные настройки.
- Просмотр текущего содержимого sources.list
cat /etc/apt/sources.listОцениваем, есть ли в списке репозитории с ошибками (например, устаревшие адреса или дополнительные источники).
- Ручное обновление sources.list с рабочими зеркалами
sudo nano /etc/apt/sources.listРедактируем список репозиториев, заменяем подозрительные URL на проверенные зеркала, например:
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverseПояснение: в данном примере используется стандартное зеркало Ubuntu для версии Focal. Для Debian аналогично можно использовать
deb http://deb.debian.org/debian/ buster main. - Обновление списка ключей подписи (GPG keys)
sudo apt-key listВыводит список доверенных ключей. Если отсутствует нужный ключ, можно добавить его так:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keysЗамените
на актуальный ID ключа (например, ABCD1234). Этот ID можно посмотреть в сообщениях об ошибках apt. - Запуск обновления списка пакетов вручную
sudo apt updateКоманда обращается к всем репозиториям, указанным в
sources.listи скачивает актуальные списки пакетов. Если все настроено правильно — ошибки отсутствуют. - Настройка автоматического обновления через cron
Для регулярного обновления списка пакетов вручную можно добавить задачу cron:
sudo crontab -eДобавьте строку (ежедневно в 3 часа ночи):
0 3 * * * /usr/bin/apt update -o Dir::Etc::sourcelist="/etc/apt/sources.list" -o Dir::Etc::sourceparts=- -o APT::Get::List-Cleanup=0Данная команда обновит источники, учитывая только основной файл sources.list (без сторонних файлов), предотвращая возможные конфликты.
Альтернативные методы
- Использование графических интерфейсов управления пакетами (например, Synaptic) для обновления репозиториев.
- Замена package manager с
aptнаapt-getилиaptitudeдля диагностики ошибок. - Очистка кеша package manager и повторная загрузка списков:
sudo rm -rf /var/lib/apt/lists/* sudo apt updateВнимание! Данная команда удаляет кеш списков пакетов, но не удаляет сами пакеты.
Проверка результата
- Запустите команду
sudo apt update. Выход должен содержать строки вида:Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] Reading package lists... DoneОшибок подключения или проверки ключей быть не должно.
- Проверьте наличие кэшированных списков:
ls -l /var/lib/apt/lists/Должны отображаться файлы с информацией о пакетах из репозиториев.
Как избежать в будущем
- Используйте проверенные зеркала и регулярно проверяйте актуальность ключей безопасности.
- Не редактируйте вручную
sources.list, если не уверены в репозиториях и их адресах. - Настройте автоматическое обновление списков через cron или systemd timers.
- Следите за сообщениями об обновлениях безопасности и своевременно обновляйте ключи.
FAQ
Что делать, если ошибка «NO_PUBKEY» повторяется?
Проверьте, правильно ли вы добавили ключ с помощью команды apt-key adv и используйте актуальный keyserver.
Можно ли использовать зеркала из сторонних источников?
Да, но только проверенные, чтобы избежать проблем с безопасностью и целостностью пакетов.
Что делать, если после обновления apt update выдаёт ошибки сети?
Проверьте подключение к интернету, настройки DNS и прокси, если он используется.
Смотрите также: Как настроить автоматические обновления в Linux через systemd timer