Ubuntu

跨發行版兼容性 - 是什麼阻止了它?

  • December 9, 2021

例如,為什麼我不能在 Fedora 或 Arch 上執行 Ubuntu 程序,反之亦然?同樣,為什麼我不能apt-get在 Fedora 或pacmanLFS 中使用?.deb.rpm文件呢?有人可以為一個完整的 Linux 新手解釋一下嗎?

問題有好幾層,主要是:

  1. 二進制兼容性 - 每個發行版中的軟體都是針對該發行版中的庫編譯的。這些可能在用於建構它們的編譯器/編譯器標誌和/或所選功能方面有所不同。因此,您可能會遇到問題,即發行版 A 中的某些庫在發行版 B 的同一庫中不可用。在 B 上執行的 A 中的軟體可能正在尋找不存在的東西。
  2. 包管理 - 您可以使用多個包管理系統,但它一定會遇到麻煩,因為它們彼此不了解。如果你pacman用來安裝 X,那麼rpm在同一個系統上就不會知道它。而這僅僅是開始——接下來的事情是rpm從通過 安裝的包中覆蓋一些文件pacman,因此很可能會破壞有問題的包並且可能會破壞更多內容(參見 1.)。

有一些工具可以將包從一種格式轉換為另一種格式,但這些工具通常非常無用,正是因為 1.

很大程度上還取決於您堆疊在什麼之上的包管理器。在底層發行版上編譯你自己的版本很好,你只需要自己跟踪安裝的文件。在 LSB 之上使用高級包管理器可能會帶來更多問題,因為他們可能會刪除/更改他們認為可以自由執行的文件。

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