Gostaria de instalar alguns pacotes em uma imagem ARM antes de atualizá-la para um cartão SD. Até agora, montei a imagem em loop
sudo mount -o loop,offset=99614720 archlinuxarm-13-06-2012.img /mnt
e adicionei os espelhos ARM ao meu arquivo /etc/pacman.d/mirrorlist
. Eu então tentei 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 ideia do que está sendo execv
-d?
Atualizar
Eu descobri que ele está tentando executar ldconfig
, o que obviamente está falhando. Felizmente, não preciso disso para funcionar!
Responder1
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 alvo que pode precisar ser executado durante a instalação do pacote.
Faça a instalação no próprio dispositivo ARM ou em um emulador como o QEmu.
Alternativamente, baixe o tar.xz
arquivo, modifique o arquivo para removê- .INSTALL
lo e execute o pacman novamente no arquivo modificado. Em seguida, lide com a falha causada por não ter executado o script de instalação manualmente.
Responder2
tenteicorrigindo o pacmanentão agora tem uma --no-ldconfig
opção e resolve o problema. Há também outra solução com uma ferramenta feita por Alex Chamberlain,piimg, mas ainda não foi testado.