Ich möchte einige Pakete auf einem ARM-Image installieren, bevor ich es auf eine SD-Karte flashe. Bisher habe ich das Image per Loop-Mount gemountet.
sudo mount -o loop,offset=99614720 archlinuxarm-13-06-2012.img /mnt
und habe die ARM-Spiegel zu meinem hinzugefügt /etc/pacman.d/mirrorlist
. Ich habe dann versucht,
sudo pacman --root /mnt --arch arm --conf /mnt/etc/pacman.conf -S curl
Es schlägt jedoch mit der folgenden Ausgabe fehl ...
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
Irgendwelche Ideen, wie man das ohne Emulation zum Laufen bekommt? Irgendeine Idee, was -d ist execv
?
Aktualisieren
Ich habe festgestellt, dass es versucht, zu laufen ldconfig
, was offensichtlich fehlschlägt. Zum Glück muss es nicht laufen!
Antwort1
Die meisten Linux-Distributionen unterstützen die Installation von Paketen für ein Zielsystem auf einem inkompatiblen Hostsystem nicht. Arch ist keine Ausnahme. ldconfig
ist nur eines von vielen Programmen des Zielsystems, die möglicherweise während der Paketinstallation ausgeführt werden müssen.
Führen Sie die Installation auf dem ARM-Gerät selbst oder in einem Emulator wie QEmu durch.
Alternativ können Sie die tar.xz
Datei herunterladen, das Archiv ändern, um die .INSTALL
Datei zu entfernen, und Pacman erneut auf dem geänderten Archiv ausführen. Beheben Sie dann den Fehler, der dadurch verursacht wurde, dass Sie das Installationsskript nicht manuell ausgeführt haben.
Antwort2
Ich habe es versuchtPacman patchenalso gibt es jetzt eine --no-ldconfig
Option, und sie löst das Problem. Es gibt auch eine andere Lösung mit einem Tool von Alex Chamberlain,Abonnieren, aber es ist noch nicht getestet.