Вопрос или проблема
Я случайно обновил систему, запустив свой скрипт обновления (с тех пор он был отменен). После обновления я усугубил ситуацию, удалив файл ubuntu.sources
.
Теперь, когда я запускаю sudo apt update
, я получаю
N: Отсутствует Signed-By в записи sources.list(5) для 'https://esm.ubuntu.com/apps/ubuntu'
Я пытался добавить
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
как предлагали некоторые другие пользователи, но это вызывает следующую ошибку
Err:2 https://esm.ubuntu.com/apps/ubuntu noble-apps-security InRelease
Следующие подписи не могут быть проверены, потому что открытый ключ недоступен: NO_PUBKEY AB01A101DB53907B
Я также пытался воссоздать файл ubuntu.sources
по умолчанию с помощью этого
Types: deb
URIs: http://us.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Но затем система сообщает, что у меня пакеты настроены несколько раз.
W: Целевые пакеты (main/binary-amd64/Packages) настроены несколько раз в /etc/apt/sources.list:2 и /etc/apt/sources.list.d/ubuntu.sources:1
Ответ или решение
Восстановление удаленного файла /etc/apt/sources.list.d/ubuntu.sources
после обновления может быть несколько усложнено, но с правильным подходом это возможно. Вот пошаговое руководство по восстановлению правильной конфигурации репозиториев на вашей системе Ubuntu.
-
Проверка наличия файла: Сначала убедитесь, что файл действительно был удален. Вы можете сделать это с помощью следующей команды:
ls /etc/apt/sources.list.d/
-
Создание нового файла: Если файл отсутствует, создайте его заново. Используйте текстовый редактор, такой как
nano
илиvim
, чтобы создать файл:sudo nano /etc/apt/sources.list.d/ubuntu.sources
-
Добавление содержимого: Вставьте в файл следующую конфигурацию (как общий пример для Ubuntu; проверьте соответствие вашей версии):
Types: deb URIs: http://us.archive.ubuntu.com/ubuntu/ Suites: $(lsb_release -cs) $(lsb_release -cs)-updates $(lsb_release -cs)-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: http://security.ubuntu.com/ubuntu/ Suites: $(lsb_release -cs)-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Не забудьте заменить
$(lsb_release -cs)
на вашу кодовую имя версии Ubuntu (например,focal
,jammy
и т.д.), если ваша версия не поддерживается. -
Удаление дубликатов: Убедитесь, что в файле
/etc/apt/sources.list
, а также в других файлах в каталоге/etc/apt/sources.list.d/
нет дубликатов тех же источников. Если они есть, удалите либо строки из одного из файлов, либо сам файл, чтобы избежать конфликтов. -
Импорт ключей: Чтобы решить проблему с отсутствующим публичным ключом, выполните следующую команду:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB01A101DB53907B
Это должно загрузить необходимый ключ и решить проблемы с неподписанными репозиториями.
-
Обновление пакетов: Теперь попробуйте обновить список пакетов:
sudo apt update
-
Устранение ошибок: Если ошибка с отсутствием ключа все еще возникает, убедитесь, что файл
/usr/share/keyrings/ubuntu-archive-keyring.gpg
действительно существует. Если его нет, попробуйте установить пакетubuntu-keyring
:sudo apt install ubuntu-keyring
-
Проверка состояния: После всех этих шагов еще раз выполните:
sudo apt update
Убедитесь, что больше не возникает никаких ошибок.
Если следуя этим шагам, проблема остается нерешенной, возможно, стоит рассмотреть восстановление системы из резервной копии или переустановку системы с чистым началом, если это возможно.