apt update docker.com Ошибка 404 не найдено

Вопрос или проблема

Недавно я пытался установить Docker с помощью следующего метода:

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

Но это не сработало, возможно, из-за сломанных пакетов или чего-то другого. После этого я установил Docker и Docker Compose с помощью метода apt, и это хорошо заработало. Но когда я пытаюсь обновить или обновить свою систему, я вижу следующие сообщения. Я не знаю, в чем проблема, пожалуйста, дайте мне решение, спасибо.

$ sudo apt-get update

Hit:1 http://ppa.launchpad.net/daniruiz/flat-remix/ubuntu bionic InRelease
Hit:2 https://dl.winehq.org/wine-builds/ubuntu bionic InRelease
Hit:3 http://security.ubuntu.com/ubuntu bionic-security InRelease
Ign:4 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:5 http://dl.google.com/linux/chrome/deb stable Release
Hit:6 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease
Hit:7 http://lk.archive.ubuntu.com/ubuntu bionic InRelease
Ign:9 https://download.docker.com/linux/debian bionic InRelease
Hit:10 http://lk.archive.ubuntu.com/ubuntu bionic-updates InRelease
Err:11 https://download.docker.com/linux/debian bionic Release
404 Not Found [IP: 13.35.8.98 443]
Hit:13 http://lk.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:12 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease
Reading package lists… Done
E: Репозиторий ‘https://download.docker.com/linux/debian bionic Release’ не имеет файла Release.
N: Обновление из такого репозитория не может быть выполнено безопасно, и поэтому оно отключено по умолчанию.
N: Смотрите man-страницу apt-secure(8) для деталей создания репозиториев и настройки пользователя.

$ sudo apt-get upgrade

Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
Следующие пакеты были отложены:
libxml2 libxml2:i386
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

Как я могу удалить из своего списка источников, потому что мне это больше не нужно?

Согласно странице Docker для Ubuntu, проблема в том, что должно быть https://download.docker.com/linux/ubuntu вместо https://download.docker.com/linux/debian.

Выполните следующую команду, чтобы это исправить:

sudo sed -i ‘s/debian/ubuntu/g’ /etc/apt/sources.list.d/docker.list
sudo apt update

Однако, если это не решит проблему, выполните следующую команду:

sudo sed -i ‘s|docker.com/linux/debian|docker.com/linux/ubuntu|g’ /etc/apt/sources.list
sudo apt update

Я использовал следующее в Linux Mint:

Определите кодовое имя Ubuntu, используя команду ниже (а НЕ кодовое имя версии):
$ cat /etc/os-release | grep -i codename
VERSION_CODENAME=una
UBUNTU_CODENAME=focal

Замените кодовое имя Ubuntu в /etc/apt/sources.list.d/docker.list:
https://download.docker.com/linux/ubuntu stable

В моем случае команда на сайте Docker установила кодовое имя на una (Docker определяет его с помощью lsb_release -cs), но мне пришлось изменить его на focal.

Если вы используете Parrot OS, вам нужно заменить parrotos в /etc/apt/sources.list.d/docker.list на актуальную версию Debian для вашей версии ОС (bullseye, buster и так далее).
sudo nano /etc/apt/sources.list.d/docker.list

Вышеуказанная команда откроет файл docker.list, где вы можете изменить ссылку так, чтобы она выглядела следующим образом:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bullseye stable

Просто замените bullseye на ваше кодовое имя Debian и снова выполните sudo apt-get update.

Я пытался следовать советам моих коллег в других ответах здесь, но когда я выполнил команду apt update, был создан новый файл docker.list, всегда с версией trixie. После небольшого изучения и с помощью LLM я обнаружил, что проблема в выводе команды lsb_release -cs, которая возвращает Trixie, экспериментальную версию Ubuntu, или неподдерживаемую версию Debian для Docker.
Docker поддерживает некоторые конкретные версии Debian, такие как bullseye и bookworm. В вашем случае, поскольку вы используете Pistachio Linux, который, похоже, настроен для Debian Testing, вы можете принудить репозиторий использовать поддерживаемую версию.
Его можно исправить вручную, следуя этим шагам:
Шаг 1: Принудительно использовать версию bullseye или bookworm
Замените команду lsb_release -cs на bullseye (или bookworm, если вы используете последнюю версию Debian Testing):
echo “deb [arch=$( dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bullseye stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Шаг 2: Обновите пакеты и установите Docker
Теперь попробуйте снова обновить и установить пакеты Docker:
sudo apt update
sudo apt install -e docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

В заключение:
Команда lsb_release -cs возвращала Trixie, которая в данный момент не является официально поддерживаемой версией Docker. Принуждая использование bullseye или bookworm (версии Debian, официально поддерживаемые Docker), вы сможете установить и использовать Docker без каких-либо проблем.

Ответ или решение

Судя по описанию вашей проблемы, вы столкнулись с ошибкой 404 при обновлении репозитория Docker. Эта ошибка возникает, когда вы пытаетесь получить доступ к несуществующему URL. Причина в том, что вы используете неправильный URL для вашей операционной системы.

Давайте рассмотрим, как можно решить эту проблему шаг за шагом.

Шаг 1: Проверка правильности репозитория

Вы упомянули, что Docker пытается получить доступ к репозиторию https://download.docker.com/linux/debian, однако для Ubuntu вам нужен другой URL: https://download.docker.com/linux/ubuntu. Вам нужно будет отредактировать файл репозитория, чтобы он указывал на правильный адрес.

  1. Откройте файл списка источников Docker с помощью текстового редактора. Используйте команду:

    sudo nano /etc/apt/sources.list.d/docker.list
  2. Измените строку, которая начинается с deb, так чтобы она выглядела следующим образом:

    deb [arch=amd64] https://download.docker.com/linux/ubuntu <ваш_кодовое_имя_версии_ubuntu> stable

    Замените <ваш_кодовое_имя_версии_ubuntu> на ваше фактическое кодовое имя, например bionic, focal или jammy. Чтобы получить кодовое имя, выполните команду:

    cat /etc/os-release | grep VERSION_CODENAME
  3. Сохраните изменения и закройте редактор.

Шаг 2: Обновите списки пакетов

Теперь, когда вы исправили URL-адрес репозитория, обновите списки пакетов:

sudo apt-get update

Шаг 3: Установка и обновление Docker

После успешного обновления, вы можете установить или обновить Docker и Docker Compose с помощью команды:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose

Шаг 4: Решение проблемы с apt upgrade

Если вы видите сообщения о "held back" (удерживаемые пакеты) для libxml2, вы можете попытаться вручную обновить их:

sudo apt-get install libxml2 libxml2:i386

Если эти пакеты не обновляются, вы можете попробовать:

sudo apt-get dist-upgrade

Это поможет установить, удалить или обновить пакеты, если требуется изменение зависимостей.

Резюме

Вы успешно изменили URL репозитория и теперь должны быть в состоянии обновлять и устанавливать пакеты Docker без ошибок. Следуя описанным шагам, вы исправите конфигурации репозиториев и избежите проблем, связанных с 404 ошибкой в будущем. Если у вас остались вопросы или возникли другие проблемы, не стесняйтесь задавать их.

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

Капча загружается...