Como uso o pacman em uma imagem do Arch montada em loop para uma arquitetura diferente?

3

Eu gostaria de instalar alguns pacotes em uma imagem ARM antes de exibi-la em um cartão SD. Até agora, eu montei a imagem em loop

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

e adicionei os espelhos do ARM ao meu /etc/pacman.d/mirrorlist . Eu tentei então correr

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

Mas falha com a seguinte saída ...

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

Alguma idéia de como fazer isso funcionar sem emulação? Alguma idéia do que está sendo execv -d?

Atualizar

Descobri que está tentando executar ldconfig , o que obviamente está falhando. Felizmente, eu não preciso disso para ser executado!

    
por Alex Chamberlain 06.07.2012 / 10:38

2 respostas

1

A maioria das distribuições Linux não suporta a instalação de pacotes para um sistema de destino em um sistema host incompatível. Arch não é exceção. ldconfig é apenas um entre muitos programas do sistema de destino que podem precisar ser executados durante a instalação do pacote.

Execute a instalação no próprio dispositivo ARM ou em um emulador como o QEmu.

Como alternativa, baixe o arquivo tar.xz , modifique o arquivo para remover o arquivo .INSTALL e execute o pacman novamente no arquivo modificado. Em seguida, lide com a quebra causada por não ter executado o script de instalação manualmente.

    
por 07.07.2012 / 02:43