Debian软件包命名约定?


12

一切都很混乱。有不同的示例,例如:

<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


该策略的部分仅引用更改文件。只需重命名deb和调整.changes文件
乌尔里希Dangel

意味着关于.deb文件的文件名没有约定?
Preexo

1
@prexo有,但没有正式定义。如果要调整文件名,只需重命名deb并调整更改文件即可。如果您不上传,只需重命名deb文件就足够了
Ulrich Dangel 2013年

谢谢!是的,我没有上传,因此问题已得到解决;)做出答案,也许是关于约定的严格程度,我将其作为答案:)
Preexo

Answers:


11

我的理解是,您想将软件包分发/部署到多个基于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/changelogdebian/control文件中)。某些人在版本字段中使用发行版名称。例如openssl

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

如果您要这样做,请确保debian_revisionversion中阅读有关debian-policy的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.