Debian
跨發行版的包版本控制
目標是在基於 RPM 的 Fedora、CentOS、RedHat 等發行版中辨識軟體包版本。我可以依賴上游版本在所有發行版上都相同嗎?如果是,那麼如何從命令行檢索(RPM 或 DEB)上游版本號?
不能將其發佈為 aswer –>
如果在 .spec 文件中指定了自動依賴項,則 rpm -qp -requires .rpm 中列出的這些依賴項是虛擬包。這些虛擬包不是庫 soname,而只是虛擬包名稱(即使它們看起來像 soname)。
例如在 Fedora 27 上,這有效
$ rpm -q --whatprovides "libQt5Core.so.5()(64bit)" qt5-qtbase-5.9.2-5.fc27.x86_64
但這不是
$ rpm -q --whatprovides libQt5Core.so.5 no package provides libQt5Core.so.5 $ rpm -q --whatprovides libQt5Core no package provides libQt5Core $ rpm -q --whatprovides Qt5Core no package provides Qt5Core
如果您自己的 .rpm 本身捆綁了這些庫(即提供這些虛擬包),那麼如果這些虛擬包沒有安裝在系統上,RPM 將不會抱怨,因為它們是隨您的包提供的。
您不能在任何時候依賴使用特定軟體包的相同上游版本的(所有)Linux 發行版,因為每個發行版都有自己的開發週期。
雖然您會看到跨發行版的包名稱有很多共性,但並不能保證。根據經驗,包名稱在發行版和任何派生的下游發行版中基本相同。例如,想想 Debian 和 Ubuntu,或者 Redhat 和 CentOS。