Debian

Debian 軟體包命名約定?

  • January 27, 2022

這一切都非常令人困惑。那裡有不同的例子,例如:

<package-name>_<epoch>:<upstream-version>-<debian.version>-<architecture>.deb

來源:debian 封包件名

第 5.6.12 節版本或 Debian 政策手冊是否也與實際的軟體封包件名相關?還是只到控製文件中的欄位?

在這個關於儲存庫格式的wiki 主題中,它並沒有真正說明任何關於約定的內容,在開發人員最佳實踐指南中也是如此。

也許我只是在尋找錯誤的東西,請幫助我並告訴我在哪裡可以找到 Debian 包名稱約定。我特別好奇在哪裡放置 Debian 代號。我想做這樣的事情:

<package-name>_<version>.<revision>-<debiancodename>_<architecture>.deb

哪裡<debiancodename>squeezewheezy

我的理解是您希望將一個軟體包分發/部署到多個基於 Debian 的發行版。

在 Debian/Ubuntu 世界中,您不應該提供單獨.deb的文件來下載和安裝。相反,您應該提供一個 APT 儲存庫。(在 Fedora/Red Hat/CentOS 世界中,我會提出類似的建議來提供 YUM 儲存庫)。不僅解決瞭如何命名 deb 文件的問題,而且儲存庫是提供更新版本包的有效方法,包括錯誤修復和安全更新。創建 APT 儲存庫超出了此頁面/問題的目的,只需搜尋*“如何設置 apt 儲存庫”*

現在回到你的問題:“包命名約定”:

當您使用 生成包時dpkg-buildpackage,包將以標準方式命名。引用dpkg-name聯機幫助頁:

完整的包名稱由包的控製文件中指定的 package_version_architecture.package-type 組成。

package_version_architecture.package-type

Debian Policy了解控製文件語法的正確位置:名稱(源包和二進制包)、版本架構包類型

沒有規定說明分配,因為事情不是這樣發展的。

如果您需要為多個發行版編譯相同版本的包,您將更改該version欄位(在debian/changeloganddebian/control文件中)。有些人在版本欄位中使用發行版名稱。例如openssl

0.9.8o-4squeeze14 
1.0.1e-2+deb7u14
1.0.1k-1 

如果那是您想要做的,請務必閱讀關於版本debian_revision的debian-policy 。

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