Package-Management
你能在 Alpine 中安裝 Ubuntu 或 Debian 軟體包嗎?
我想問是否可以在 Alpine 中安裝 Ubuntu 或 Debian 軟體包?我知道 Alpine 使用 musl 而 Debian 使用 glibc。我仍然想知道是否可以不做太多工作。我正在嘗試將之前在 Ubuntu 上執行的伺服器移植到 Alpine,但我意識到 Nginx sub_filter 在 Alpine 的 Nginx 版本上不可用,我需要該模組。
您實際上可以
.deb
使用dpkg
. 但是,您需要.deb
所有依賴包的文件,因此這僅適用於非常簡單的情況。在 Alpine 上執行 Debian/Ubuntu 二進製文件的主要問題確實是 glibc 與 musl libc 不兼容。你可以在幾個層面上解決它:
- 對於輕度 glibc 兼容性,請嘗試安裝
libc6-compat
. 它是一個圍繞 musl 的薄包裝器,提供了一些 glibc 介面和存根。但是,它不太可能適用於復雜的 glibc 應用程序。- 為了完全兼容 glibc,您可以按照 @FederalReserve 的建議在您的 Alpine 容器上安裝 glibc。這實際上是一個簡單而常見的程序。參見例如:Dockerfile。單獨的 glibc 只為 Alpine 映像增加了一些額外的 MB,考慮到 Alpine 基礎映像本身大約為 5MB,這相對很多,但從絕對 MB 增加的角度來看,這絕對是可以容忍的。
- 嘗試在 Alpine 上本地建構軟體。
sub_filter
在您的情況下,啟用了該模組的 Nginx 。但是,對於 Nginx,我不確定所需的工作量(取決於 Nginx 建構系統以及模組是否需要移植到 Alpine Linux),所以這只是一個建議。