Вопрос или проблема
Kubernetes изменил расположение своего репозитория с того места, где он ранее размещался на Google. Я предпринял шаги, чтобы указать на новое местоположение в соответствии с инструкциями K8s:
cat /etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /
, но при запуске apt update продолжает искать теперь несуществующий пакет:
Err:8 https://packages.cloud.google.com/apt kubernetes-xenial Release
404 Not Found [IP: 142.250.72.174 443]
...
E: The repository 'http://apt.kubernetes.io kubernetes-xenial Release' no longer has a Release file.
Я пробовал очистить кэш с помощью apt clean и пытался переустановить apt. В настоящее время это блокирует не только мои обновления, но и новую программу, которую я пытаюсь установить с помощью apt, и она вынуждает процесс обновления. Есть ли что-то, что я упустил? Не могу найти ничего в интернете, кроме уже выполненных шагов.
У меня была такая же проблема, и я нашел решение на форуме:
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
mkdir /etc/apt/keyrings # если нужно
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo apt-get update # работает
.
Ответ или решение
При решении проблемы обновления пакетов Kubernetes важно учитывать, что данная система работает на основе репозиториев, предоставляющих доступ к последним версиям программного обеспечения и обновлениям безопасности. Замена местоположения репозитория Kubernetes требует своевременной корректировки конфигурации системы. Давайте разберёмся, какими способами можно устранить проблему, связанную с устаревшим указателем на пакет Kubernetes в Ubuntu, в данном случае — на пакет для Ubuntu Xenial.
Теория
Основной теоретической основой этой проблемы является понимание работы системы управления пакетами APT в Ubuntu.Обновление APT считается одним из первых шагов, необходимых для того, чтобы система могла загрузить новые версии нужных пакетов. Когда вы обновляете свой репозиторий, система APT обращается к списку репозиториев, хранящихся в файле /etc/apt/sources.list
и сопутствующих .list
файлах в каталоге /etc/apt/sources.list.d/
.
После изменения местоположения репозитория Kubernetes, как указано в предоставленной инструкции, система должна использовать актуальный URL для загрузки пакетов. Однако существующая проблема заключается в том, что при выполнении команды apt update
продолжается обращение к устаревшему репозиторию packages.cloud.google.com
, который более не доступен (404 ошибка).
Пример
Пример из практики состоит в следующем: пользователь редактирует файл /etc/apt/sources.list.d/kubernetes.list
, включая в него новую строку репозитория:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /
Проблема заключается в том, что, несмотря на то, что изменения в файле были внесены, система продолжает ссылаться на старый адрес репозитория. Это может происходить из-за нескольких причин:
- Существование других конфигурационных файлов с устаревшими адресами репозиториев.
- Проблемы с кешем APT.
- Информация о ключах подписи пакетов может не быть обновленной.
Чтобы решить эту проблему, необходимо удостовериться, что все ссылки на старые адреса репозиториев в системе удалены, и ключи GPG использованы корректно.
Применение
-
Проверка файлов конфигурации репозиториев: Попробуйте выполнить поиск всех файлов, где может быть указан устаревший адрес репозитория Kubernetes. Из команды в терминале вам потребуется выполнить:
grep -r "cloud.google.com" /etc/apt/
Эта команда найдет вхождения
cloud.google.com
во всех файлах конфигурации системы APT, чтобы вы могли удалить или обновить их. -
Очистка кеша APT: Убедитесь, что кеш APT был полностью очищен. Используйте:
sudo apt clean sudo rm -rf /var/lib/apt/lists/* sudo apt update
Эти команды удалят все кэшированные данные, включая устаревшие ссылки на репозитории.
-
Проверка и установка ключей GPG: Убедитесь, что ключи GPG для новой репозитории корректно установлены:
mkdir -p /etc/apt/keyrings curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Эта команда загружает и устанавливает ключ безопасности, необходимый для проверки пакетов из нового репозитория.
-
Обновление и установка пакетов: После всех проверок и изменений повторно выполните обновление и установку пакетов:
sudo apt-get update sudo apt-get upgrade
Эти шаги помогут вам устранить проблему и гарантируют, что система будет использовать актуальные адреса реконфигурированных репозиториев для обновления и установки необходимых пакетов Kubernetes. Убедитесь, что все изменения внесены точно и все проверки выполнены, чтобы избежать дальнейших проблем с обновлением APT.