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

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

我最近使用 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

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

另外,我还发现这个问题 其中说

“目前看来不可能在 alpine 上构建 Android”

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

答案1

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

至于在 Alpine 上运行 Android 开发工具:我启动了一个名为通用兼容性尝试允许 glibc 二进制文件在不使用 glibc 的情况下在 musl 上本地运行。有一些悬而未决的问题在它可以运行 Android 工具之前就离开了,但更多的测试总是受欢迎的。

答案2

我在运行的 iPhone 上安装了 iSH:alpine Linux I-386 或 -> musl-i386,我想尝试 chroot 到基于 debian 的发行版(Ubuntu 或 Kali)并能够使用 apt/apt-get。我发现这可能与我在 chroot 到 Ubuntu 时遇到的问题有关,并且 apt 根本无法运行。我一直在使用某人在线提供的脚本:

https://github.com/MFDGaming/Ubuntu-In-Ish/raw/master/ubuntu.sh

相关内容