这一切都非常令人困惑。有不同的例子,例如:
<package-name>_<epoch>:<upstream-version>-<debian.version>-<architecture>.deb
是5.6.12 版本或者 Debian 政策手册也与实际的包文件名相关?或者只针对控制文件中的字段?
在这个 wiki 主题中关于存储库格式它并没有真正提到任何关于约定的内容,同样的开发人员最佳实践指南。
也许我只是在寻找错误的东西,请帮助我并告诉我在哪里可以找到 Debian 软件包名称约定。我特别好奇 Debian 代号应该放在哪里。我想做这样的事情:
<package-name>_<version>.<revision>-<debiancodename>_<architecture>.deb
其中<debiancodename>
是squeeze
或wheezy
。
答案1
我的理解是,您想要将软件包分发/部署到多个基于 Debian 的发行版。
在 Debian/Ubuntu 世界中,您不应提供单独的.deb
文件来下载和安装。相反,您应该提供 APT 存储库。 (在 Fedora/Red Hat/CentOS 世界中,我会提出类似的建议来提供 YUM 存储库)。不仅解决了如何命名 deb 文件的问题,而且存储库是提供更新版本的包的有效方法,包括错误修复和安全更新。创建 APT 存储库超出了本页面/问题的目的,只需搜索“如何设置 apt 存储库”
现在回到你的问题:“包命名约定”:
当您使用 生成包时dpkg-buildpackage
,该包将以标准方式命名。引用dpkg 名称联机帮助页:
完整的包名称由包的控制文件中指定的 package_version_architecture.package-type 组成。
package_version_architecture.package-type
Debian 政策是了解控制文件语法的正确位置:姓名(对于源代码包和二进制包),版本,建筑学,包装类型。
没有规定说明分配情况,因为事情不是这样的。
如果您需要为多个发行版编译相同版本的包,您将更改该version
字段(在debian/changelog
和debian/control
文件中)。有些人在版本字段中使用发行版名称。例如开放式SSL:
0.9.8o-4squeeze14
1.0.1e-2+deb7u14
1.0.1k-1
如果这就是您想要做的,请务必阅读debian_revision
中的debian-policy版本。