Я хотел бы установить некоторые пакеты на образ 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
возможность, и это решает проблему. Есть также другое решение с инструментом, созданным Алексом Чемберленом,пиимг, но пока не протестировано.