Fedora

RPM 是否跨平台有效?

  • October 29, 2010

我對 Red Hat 和/或 Fedora(和/或其他發行版?)中的 RPM 有點困惑。我當然可以接受 64 位作業系統需要 64 位 RPM,32 位作業系統需要 32 位,但是……如果我有用於……OpenOffice.org 的 RPM,那麼 RPM 是否有效對於我的任何接受 RPM 的作業系統,或者我是否需要尋找專門為我正在使用的作業系統量身定制的 RPM?

像往常一樣:答案取決於。RPM(或基本上任何給定的二進制包容器)包含可執行的程式碼。大多數情況下,程式碼依賴於某些庫或程序,包指定它確實依賴於libA版本 >= 1.0 的庫。

現在採用兩種不同的發行版,兩者都使用 RPM 打包格式。假設有人呼叫包 libA-1.0,因此您擁有的 RPM 指定它依賴於 libA。第二個二進制發行版有一個不同的 naimg 方案,並在包前面加上 a language,所以它被命名為language-libA. 即使這兩個 libA 包的內容相同,包管理器也無法知道這一點。您當然可以強制 RPM 無論如何都只安裝軟體包而不查看依賴項,但這通常只是要求懲罰。

如果兩個發行版相關甚至基於彼此,問題就不那麼嚴重了:例如,Ubuntu 基於 debian,因此共享許多命名約定和軟體包,因此您可以將 debian 的軟體包建構轉移到 Ubuntu 機器上。

它還很大程度上取決於包是用什麼語言編寫的:如果你有一些解釋為 Python 的東西,其中包基本上只是一堆文本文件,將包用於不同的發行版通常很容易處理,但如果它是用C++ 和依賴以及兩個發行版都使用不同版本的核心庫或編譯器,你基本上不走運。

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