Debian 軟體包命名約定?
這一切都非常令人困惑。那裡有不同的例子,例如:
<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>
是squeeze
或wheezy
。
我的理解是您希望將一個軟體包分發/部署到多個基於 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/changelog
anddebian/control
文件中)。有些人在版本欄位中使用發行版名稱。例如openssl:0.9.8o-4squeeze14 1.0.1e-2+deb7u14 1.0.1k-1
如果那是您想要做的,請務必閱讀關於版本
debian_revision
的debian-policy 。