如何在不同架构的循环安装 Arch 映像上使用 pacman?

如何在不同架构的循环安装 Arch 映像上使用 pacman?

我想先在 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 发行版不支持在不兼容的主机系统上安装目标系统的软件包。阿奇也不例外。ldconfig只是软件包安装过程中可能需要运行的目标系统的众多程序之一。

在 ARM 设备本身或 QEmu 等模拟器中执行安装。

或者,下载该tar.xz文件,修改存档以删除该.INSTALL文件,然后对修改后的存档再次运行 pacman。然后处理由于没有手动运行安装脚本而导致的损坏。

答案2

我试过修补吃豆人所以现在它有了一个--no-ldconfig选择,它解决了问题。还有另一种解决方案,使用 Alex Chamberlain 制作的工具,皮伊姆格,但尚未测试。

相关内容