Вопрос или проблема
Я обновляю относительно новый Linode:
sudo apt-get update
но получаю
Hit:1 http://mirrors.linode.com/ubuntu noble InRelease
Hit:2 http://mirrors.linode.com/ubuntu noble-updates InRelease
Hit:3 http://mirrors.linode.com/ubuntu noble-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu noble-security InRelease
Чтение списков пакетов... Готово
N: Отсутствует Signed-By в записи sources.list(5) для 'http://mirrors.linode.com/ubuntu'
N: Отсутствует Signed-By в записи sources.list(5) для 'http://mirrors.linode.com/ubuntu'
N: Отсутствует Signed-By в записи sources.list(5) для 'http://mirrors.linode.com/ubuntu'
Насколько мне известно, это может быть связано с использованием неподдерживаемых версий Ubuntu, но с Noble этого быть не должно. В чем здесь проблема?
Содержимое моих файлов источников выглядит следующим образом.
third-party.sources
:
Типы: deb
URI: http://mirrors.linode.com/ubuntu/
Сюиты: noble noble-updates noble-backports
Компоненты: main restricted universe multiverse
ubuntu.sources
:
Типы: deb
URI: http://security.ubuntu.com/ubuntu/
Сюиты: noble-security
Компоненты: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Я использую:
> lsb_release -a
Нет доступных модулей LSB.
ID дистрибьютора: Ubuntu
Описание: Ubuntu 24.04 LTS
Версия: 24.04
Кодовое имя: noble
“/etc/apt/sources.list.d/third-party.sources” должно ссылаться на ключ подписи. Как клиент Linode, имеет смысл доверять их локальному зеркалу, но зеркалящий код все равно должен быть подписан официальным ключом ubuntu, который вы видите в файле ubuntu.sources. Вы можете либо отредактировать файл и добавить его вручную, либо использовать следующую однострочную команду.
echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" >> /etc/apt/sources.list.d/third-party.sources
У меня была эта проблема с файлом sources.list, и это произошло после того, как некоторые сетевые настройки нарушили обновление.
Я сделал следующее:
- Временно переместил файл
/etc/apt/sources.list.d/ubuntu.sources
в свою домашнюю директорию - Запустил
sudo apt update
- Переместил файл
ubuntu.sources
обратно в директорию/etc/apt/sources.list.d/
- Запустил
sudo apt update
Это, похоже, решило проблему.
Ответ или решение
Ошибка с сообщением "N: Missing Signed-By in the sources.list(5) entry for ‘http://mirrors.linode.com/ubuntu‘" указывает на то, что в вашем файле источников (sources.list
) для APT отсутствует указание на криптографический ключ, необходимый для проверки подлинности пакетов, загружаемых с данного репозитория. Данное предупреждение возникает из-за нехватки элемента "Signed-By", который должен указывать на файл с доверенным ключом для проверки подписи.
Анализ проблемы
В вашем случае у вас есть два файла с источниками: third-party.sources
и ubuntu.sources
. Согласно их содержимому, ubuntu.sources
включает строку Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
, что корректно. Однако в файле third-party.sources
, который указывает на репозиторий Linode, эта строка отсутствует. Следовательно, APT не может подтвердить подлинность загружаемых пакетов с этого зеркала, что приводит к соответствующему предупреждению.
Решение
Чтобы исправить данную проблему, вам необходимо добавить строку с указанием на подписание в файл third-party.sources
. Есть два подхода: редактирование файла вручную или использование однострочной команды для автоматизации процесса.
1. Ручное редактирование файла
Выполните следующие шаги для редактирования файла:
-
Откройте файл
third-party.sources
в текстовом редакторе с правами суперпользователя, например:sudo nano /etc/apt/sources.list.d/third-party.sources
-
Добавьте строку
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
в конец файла, чтобы он выглядел следующим образом:Types: deb URIs: http://mirrors.linode.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
-
Сохраните изменения и закройте редактор.
2. Использование однострочной команды
Если вы предпочитаете использовать команду для быстрого добавления строки, вы можете сделать это следующим образом:
echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" | sudo tee -a /etc/apt/sources.list.d/third-party.sources
Проверка и обновление
После внесения изменений рекомендуется обновить список пакетов для проверки, исчезло ли предупреждение:
sudo apt-get update
Если всё сделано корректно, сообщения об ошибке должны исчезнуть, и APT сможет продолжить работу без каких-либо предупреждений.
Заключение
Эта ошибка касается важного аспекта работы с репозиториями в Ubuntu — проверки подлинности пакетов. Подключение правильной подписи не только устраняет сообщения об ошибках, но также обеспечивает безопасность системы, минимизируя риск установки неподписанных или вредоносных пакетов. Настоятельно рекомендуется всегда следить за актуальностью ключей и источников, чтобы избежать потенциальных проблем в будущем.