Me gustaría instalar algunos paquetes en una imagen ARM antes de actualizarla a una tarjeta SD. Hasta ahora, he montado la imagen en bucle.
sudo mount -o loop,offset=99614720 archlinuxarm-13-06-2012.img /mnt
y agregué los espejos ARM a mi /etc/pacman.d/mirrorlist
. Luego intenté correr
sudo pacman --root /mnt --arch arm --conf /mnt/etc/pacman.conf -S curl
Pero falla con el siguiente resultado...
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
¿Alguna idea sobre cómo hacer que esto funcione sin emulación? ¿Alguna idea de qué se está execv
-d?
Actualizar
Descubrí que está intentando ejecutarse ldconfig
, lo cual obviamente está fallando. ¡Afortunadamente, no necesito que eso se ejecute!
Respuesta1
La mayoría de las distribuciones de Linux no admiten la instalación de paquetes para un sistema de destino en un sistema host incompatible. Arco no es una excepción. ldconfig
es solo uno entre muchos programas del sistema de destino que pueden necesitar ejecutarse durante la instalación del paquete.
Realice la instalación en el propio dispositivo ARM, o en un emulador como QEmu.
Alternativamente, descargue el tar.xz
archivo, modifique el archivo para eliminarlo .INSTALL
y ejecute pacman nuevamente en el archivo modificado. Luego solucione la rotura causada por no haber ejecutado el script de instalación manualmente.
Respuesta2
Lo intentéparcheando pacmanentonces ahora tiene una --no-ldconfig
opción y resuelve el problema. También hay otra solución con una herramienta fabricada por Alex Chamberlain,piimg, pero aún no se ha probado.