Как использовать pacman на образе Arch, смонтированном с помощью loop-сборки, для другой архитектуры?

Как использовать pacman на образе Arch, смонтированном с помощью loop-сборки, для другой архитектуры?

Я хотел бы установить некоторые пакеты на образ ARM перед его прошивкой на SD-карту. До сих пор я монтировал образ циклически

sudo mount -o loop,offset=99614720 archlinuxarm-13-06-2012.img /mnt

и добавил зеркала ARM в свой /etc/pacman.d/mirrorlist. Затем я попытался запустить

sudo pacman --root /mnt --arch arm --conf /mnt/etc/pacman.conf -S curl

Но происходит сбой со следующим результатом...

warning: curl-7.26.0-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Targets (1): curl-7.26.0-1

Total Download Size:    0.48 MiB
Total Installed Size:   1.50 MiB
Net Upgrade Size:       0.00 MiB

Proceed with installation? [Y/n] Y
:: Retrieving packages from core...
error: failed retrieving file 'curl-7.26.0-1-arm.pkg.tar.xz' from mirror.lividpenguin.com : The requested URL returned error: 404
 curl-7.26.0-1-arm                   492.9 KiB   293K/s 00:02 [##################################] 100%
(1/1) checking package integrity                              [##################################] 100%
(1/1) loading package files                                   [##################################] 100%
(1/1) checking for file conflicts                             [##################################] 100%
(1/1) checking available disk space                           [##################################] 100%
(1/1) upgrading curl                                          [##################################] 100%
call to execv failed (Exec format error)
error: command failed to execute correctly

Есть идеи, как заставить это работать без эмуляции? Есть идеи, что такое execv-d?

Обновлять

Я обнаружил, что он пытается запуститься ldconfig, что, очевидно, не удается. К счастью, мне не нужно, чтобы это было запущено!

решение1

Большинство дистрибутивов Linux не поддерживают установку пакетов для целевой системы на несовместимой хост-системе. Arch не является исключением. ldconfig— это всего лишь одна из многих программ целевой системы, которую может потребоваться запустить во время установки пакета.

Выполните установку на самом устройстве ARM или в эмуляторе, например QEmu.

В качестве альтернативы загрузите tar.xzфайл, измените архив, чтобы удалить .INSTALLфайл, и снова запустите pacman на измененном архиве. Затем разберитесь с поломкой, вызванной тем, что вы не запустили скрипт установки вручную.

решение2

Я пыталсяисправление pacmanтак что теперь у него есть --no-ldconfigвозможность, и это решает проблему. Есть также другое решение с инструментом, созданным Алексом Чемберленом,пиимг, но пока не протестировано.

Связанный контент