Вопрос или проблема
Я пытаюсь использовать multistrap для создания образа arm64 debian bookworm.
Система хоста:
Ubuntu 20.04 x86_64
Конфигурация Multistrap:
[General]
arch=arm64
noauth=false
aptsources=Debian
bootstrap=Debian
addimportant=true
[Debian]
packages=network-manager git curl wget
keyring=debian-archive-keyring
suite=bookworm
source=http://ftp.debian.org/debian
components=main contrib non-free-firmware non-free
вызов multistrap:
sudo multistrap -d /mnt/temp -f display_config
вывод:
multistrap 2.2.10 using display_config
multistrap 2.2.10 using display_config
Defaulting architecture to native: amd64
multistrap building amd64 multistrap on 'amd64'
I: Setting /mnt/temp/lib64 -> /mnt/temp/lib symbolic link.
I: Downloading debian-archive-keyring
E: Can't find a source to download version '2023.3+deb12u1' of 'debian-archive-keyring:amd64'
multistrap: Unable to download keyring package: '/mnt/temp/'
Я не знаю, что я делаю не так, моё конфигурация не кажется мне ошибочной.
Мне кажется странным, что она ищет debian-archive-keyring:amd64
.
Этот пакет – пакет :all
.
Кто-нибудь знает, что я упускаю?
Это может показаться странным, так как вы указываете, что debian-archive-keyring
является пакетом “arch: all”. Однако я думаю, что когда целевая архитектура не совпадает с родной архитектурой хоста, её нужно установить как чужую архитектуру:
sudo dpkg --add-architecture arm64
sudo apt update
Вы можете удалить её после завершения создания целевого объекта, выполнив
sudo dpkg --remove-architecture arm64
Однако multistrap больше не поддерживается, и фактически заменён на mmdebstrap; вам следует использовать последний.
Ответ или решение
Если вы сталкиваетесь с ошибкой "multistrap: Unable to download keyring package" при создании образа Debian Bookworm для архитектуры arm64 с помощью multistrap на системе Ubuntu 20.04 x86_64, возможно, проблема заключается в конфигурации multistrap и архитектурных настройках. Давайте разберем шаги, которые помогут вам решить эту проблему.
Шаги по устранению проблемы:
-
Добавьте поддержку архитектуры arm64 на хост-системе:
Когда вы работаете с архитектурой, отличной от архитектуры вашей хост-системы, возможно, вам потребуется добавить эту архитектуру как "иностранную" на вашем текущем хосте. Это можно сделать с помощью следующих команд:sudo dpkg --add-architecture arm64 sudo apt update
Эти команды добавят поддержку arm64 на ваш Ubuntu 20.04, что позволит правильно обрабатывать зависимости, такие как
debian-archive-keyring
. -
Проверьте переданную архитектуру:
Убедитесь, что в конфигурационных файлах указана правильная архитектура. В этом случае, явно указанаarch=arm64
, что, на первый взгляд, правильно. Однако multistrap также может подхватывать архитектуру по умолчанию с хост-системы, если это не явно определено в вызове. -
Альтернатива multistrap:
Multistrap, как уже упоминалось, больше не поддерживается и был заменен на более современное решение – mmdebstrap. Это инструмент, который значительно лучше поддерживается и обновляется в соответствии с текущими требованиями Debian. Вы можете попробовать использовать mmdebstrap для создания вашего ARM64 образа:sudo apt install mmdebstrap mmdebstrap --architectures=arm64 --variant=minbase bookworm /mnt/temp 'deb http://ftp.debian.org/debian bookworm main'
Дополнительные рекомендации:
-
Удалите архитектуру после использования: Если работа с arm64 больше не требуется на вашей хост-системе, вы можете убрать ее с помощью следующей команды:
sudo dpkg --remove-architecture arm64
-
Проверяйте источники пакетов: Убедитесь, что указанный источник (
source=http://ftp.debian.org/debian
) является доступным и актуальным. Вы всегда можете проверить доступность напрямую, используяwget
илиcurl
.
Эти шаги помогут вам устранить проблемы с загрузкой пакета debian-archive-keyring
при использовании multistrap и, в целом, улучшат процесс создания Debian образов.