我们可以在 Alpine Linux 上运行 32 位程序吗?

Jeh*_*adK 3 ubuntu 32bit alpine-linux

我最近使用 docker 使用 blueocean 的官方映像安装了 jenkins。它基于 alpine linux。

现在我不能在上面运行 32 位程序

 $ /opt/android-sdk-linux/build-tools/25.0.3/aapt
 bash: /opt/android-sdk-linux/build-tools/25.0.3/aapt: No such file or 
 directory
Run Code Online (Sandbox Code Playgroud)

而且我无法找出运行 32 位程序需要安装哪些软件包。有没有可能是官方的 blueoceans (jenkins) 镜像不支持运行 32 位程序,如果没有它就无法构建很多东西。

另外,我发现了这个问题 ,它说

“目前似乎不可能在高山上构建 android”

但我无法绕过它。有人可以证实这一点吗?

A. *_*cox 6

musl(因此 Alpine)并不像 glibc 那样真正支持“multilib”。您需要在 chroot 中拥有 32 位环境才能运行 32 位应用程序。按照wiki 上的chroot 安装指南,并确保传递--arch x86给每个apk命令;这将为您提供一个 32 位 chroot,您可以在其上运行 32 位应用程序。

至于在 Alpine 上运行 Android 开发工具:我启动了一个名为gcompat的库,它试图允许 glibc 二进制文件在不使用 glibc 的情况下在 musl 上本地运行。在它可以运行 Android 工具之前,还有一些突出的问题,但更多的测试总是受欢迎的。