Ubuntu
我們可以在 Alpine Linux 上執行 32 位程序嗎?
我最近使用來自 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 工具之前還存在一些未解決的問題,但始終歡迎進行更多測試。