Debian 软件包命名约定?

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>squeezewheezy

答案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/changelogdebian/control文件中)。有些人在版本字段中使用发行版名称。例如开放式SSL:

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

如果这就是您想要做的,请务必阅读debian_revision中的debian-policy版本

相关内容