Ubuntu

我們可以在 Alpine Linux 上執行 32 位程序嗎?

  • August 31, 2021

我最近使用來自 blueocean 的官方圖像使用 docker 安裝了 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”

但我無法繞過它。有人可以證實這一點嗎?

musl(因此 Alpine)並不像 glibc 那樣真正支持“multilib”。您需要在 chroot 中有一個 32 位環境才能執行 32 位應用程序。遵循 wiki 上的chroot 安裝指南,並確保傳遞--arch x86給每個apk命令;這將為您提供一個 32 位 chroot,您可以在其上執行 32 位應用程序。

至於在 Alpine 上執行 Android 開發工具:我啟動了一個名為gcompat的庫,它試圖允許 glibc 二進製文件在不使用 glibc 的情況下在 musl 上本地執行。在它可以執行 Android 工具之前還存在一些未解決的問題,但始終歡迎進行更多測試。

引用自:https://unix.stackexchange.com/questions/388225