При установке Docker на Debian 12 я получаю ошибку “репозиторий не имеет файла Release”.

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

Я запускаю виртуальную машину Debian 12 в ProxmoxVE и следую руководству по установке docker: https://docs.docker.com/engine/install/debian/

Вот результат выполнения команды apt-get update:

Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm-updates InRelease
hit:3 http://security.debian.org bookworm-security InRelease
Ign:4 https://download.docker.com/linux/debian \ InRelease
Err:5 https://download.docker.com/linux/debian \ Release
     404 Not Found [ip: 13.249.59.6 443]
Reading package lists... Done
E: The repository 'https://download.docker.com/linux/debian \ Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Сначала этот скрипт:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

выдавал мне “sudo command not found”, поэтому я удалил обратную косую черту после пайпа и принял скрипт, но получил первую ошибку.
Я проверил, не мой ли фаерволл блокирует порт 443, временно отключив его, но попытки загрузки не увенчались успехом. Я также пробовал запускать это в контейнере LXC и второй виртуальной машине с Debian 12 – во всех случаях с тем же результатом. Я предполагаю, что проблема в скрипте echo, поскольку я отклонился от документации, однако я продолжал получать различные ошибки, если не удалял обратную косую черту.

Урок здесь в том, что никогда, никогда не следует бездумно копировать серию командных строк, включающих команду sudo, если вы не понимаете, что она делает.

Учитывая, что вы используете Debian 12, вы должны — от имени root — создать файл с именем /etc/apt/sources.list.d/docker.list, содержащий следующую строку:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable

Как вы это сделаете – решать вам.

Если вы не используете amd64, подкоманда dpkg --print-architecture покажет вам, какую архитектуру вы действительно используете; замените её там, где это необходимо.

(‘bookworm’ — это кодовое имя для Debian 12)

… Также, причина, по которой ваша команда не выполнена, заключается в том, что по умолчанию в Debian не установлен пакет sudo, и, я предполагаю, причина, по которой вы не столкнулись с этой проблемой раньше, заключается в том, что вы выполняли все действия под root. Обычно рекомендуется не выполнять всё от имени root; установите команду sudo, набрав apt install sudo, а затем войдите от имени вашего обычного пользователя, предположительно с правами sudo. (Если нет, то введите adduser myuser sudo от имени root, где ‘myuser’ – это имя пользователя, которое вы выбрали)

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

Чтобы решить проблему с установкой Docker на Debian 12 и устранить ошибку "репозиторий не содержит файла Release", вам нужно внести некоторые изменения в конфигурацию источников APT. Выполните следующие шаги:

Пошаговое решение проблемы:

  1. Убедитесь, что sudo установлен:
    Поскольку Debian по умолчанию не устанавливает sudo, выполните команду от имени root, чтобы установить его:

    apt update
    apt install sudo
  2. Добавьте группу sudo вашему пользователю:
    После установки sudo убедитесь, что ваш пользователь имеет соответствующие права:

    adduser ваш_пользователь sudo
  3. Создайте файл источников для Docker:
    Откройте файл /etc/apt/sources.list.d/docker.list и добавьте следующую строку:

    deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable

    Обратите внимание: замените $(dpkg --print-architecture) на вашу архитектуру, если она не amd64.

  4. Убедитесь в правильности подписи ключа:
    Убедитесь, что директория /etc/apt/keyrings существует, и скопируйте туда ключ Docker:

    # Создайте директорию, если она еще не существует
    mkdir -p /etc/apt/keyrings
    
    # Загрузите ключ Docker
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
  5. Обновите списки пакетов и установите Docker:
    После всех изменений обновите список пакетов и установите Docker:

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Дополнительная информация:

  • Проверка сети: Исключите проблемы сети, убедившись, что ваш сервер или виртуальная машина имеют доступ к Интернету и могут открывать порты, необходимые для загрузки пакетов по HTTPS.

  • Права доступа: Убедитесь, что пользователи обладают необходимыми правами для выполнения команд sudo.

Применяя вышеописанные рекомендации, вы сможете успешно настроить установку Docker на Debian 12, избегая распространенных ошибок. Данный подход не только решает текущую проблему, но и обеспечивает безопасный и надежный процесс установки.

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

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