Package-Management

你能在 Alpine 中安裝 Ubuntu 或 Debian 軟體包嗎?

  • February 7, 2021

我想問是否可以在 Alpine 中安裝 Ubuntu 或 Debian 軟體包?我知道 Alpine 使用 musl 而 Debian 使用 glibc。我仍然想知道是否可以不做太多工作。我正在嘗試將之前在 Ubuntu 上執行的伺服器移植到 Alpine,但我意識到 Nginx sub_filter 在 Alpine 的 Nginx 版本上不可用,我需要該模組。

您實際上可以.deb使用dpkg. 但是,您需要.deb所有依賴包的文件,因此這僅適用於非常簡單的情況。

在 Alpine 上執行 Debian/Ubuntu 二進製文件的主要問題確實是 glibc 與 musl libc 不兼容。你可以在幾個層面上解決它:

  1. 對於輕度 glibc 兼容性,請嘗試安裝libc6-compat. 它是一個圍繞 musl 的薄包裝器,提供了一些 glibc 介面和存根。但是,它不太可能適用於復雜的 glibc 應用程序。
  2. 為了完全兼容 glibc,您可以按照 @FederalReserve 的建議在您的 Alpine 容器上安裝 glibc。這實際上是一個簡單而常見的程序。參見例如:Dockerfile。單獨的 glibc 只為 Alpine 映像增加了一些額外的 MB,考慮到 Alpine 基礎映像本身大約為 5MB,這相對很多,但從絕對 MB 增加的角度來看,這絕對是可以容忍的。
  3. 嘗試在 Alpine 上本地建構軟體。sub_filter在您的情況下,啟用了該模組的 Nginx 。但是,對於 Nginx,我不確定所需的工作量(取決於 Nginx 建構系統以及模組是否需要移植到 Alpine Linux),所以這只是一個建議。

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