LinuxFAQ.ru

apt update sources.list — как исправить ошибки обновления репозиториев в Linux

Если при обновлении списка пакетов в Linux через apt update возникают ошибки, связанные с репозиториями, эта статья поможет вам вручную обновить список источников (sources.list) и избежать популярных проблем. Инструкция подойдет как новичкам, так и администраторам среднего уровня.

Почему появляется ошибка при обновлении apt и sources.list

  • Некорректно задан адрес репозитория или зеркало в файле /etc/apt/sources.list.
  • Истек или отсутствует ключ подписи репозитория (GPG key), из-за чего apt не доверяет пакетам.
  • Проблемы с сетевым подключением или DNS на стороне клиента.
  • Файл sources.list или дополнительные списки в /etc/apt/sources.list.d/ повреждены или содержат временные файлы.

Пошаговое решение

  1. Проверка и резервное копирование текущего файла sources.list

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

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

  2. Просмотр текущего содержимого sources.list

    cat /etc/apt/sources.list

    Оцениваем, есть ли в списке репозитории с ошибками (например, устаревшие адреса или дополнительные источники).

  3. Ручное обновление 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.

  4. Обновление списка ключей подписи (GPG keys)

    sudo apt-key list

    Выводит список доверенных ключей. Если отсутствует нужный ключ, можно добавить его так:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 

    Замените на актуальный ID ключа (например, ABCD1234). Этот ID можно посмотреть в сообщениях об ошибках apt.

  5. Запуск обновления списка пакетов вручную

    sudo apt update

    Команда обращается к всем репозиториям, указанным в sources.list и скачивает актуальные списки пакетов. Если все настроено правильно — ошибки отсутствуют.

  6. Настройка автоматического обновления через 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Свежие материалы