Pre*_*exo 18 packaging debian package-management
这一切都非常令人困惑。那里有不同的例子,例如:
<package-name>_<epoch>:<upstream-version>-<debian.version>-<architecture>.deb
Run Code Online (Sandbox Code Playgroud)
来源:debian 包文件名
是部分5.6.12版本或Debian策略手册还涉及到实际的包文件名吗?还是只针对控制文件中的字段?
在这个关于存储库格式的wiki 主题中,它并没有真正说明任何关于约定的内容,在开发人员最佳实践指南中也是如此。
也许我只是在寻找错误的东西,请帮助我并告诉我在哪里可以找到 Debian 软件包名称约定。我特别好奇 Debian 代号放在哪里。我想做这样的事情:
<package-name>_<version>.<revision>-<debiancodename>_<architecture>.deb
Run Code Online (Sandbox Code Playgroud)
哪里<debiancodename>只是squeeze或wheezy。
Fra*_*iat 13
我的理解是您想将一个软件包分发/部署到多个基于 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
Run Code Online (Sandbox Code Playgroud)
Debian 政策是了解控制文件语法的正确位置:名称(对于源包和二进制包)、版本、架构、包类型。
没有规定说明分配,因为这不是事情的发展方式。
如果您需要为多个发行版编译相同版本的包,您将更改该version字段(在debian/changelog和debian/control文件中)。有些人在版本字段中使用发行版名称。例如openssl:
0.9.8o-4squeeze14
1.0.1e-2+deb7u14
1.0.1k-1
Run Code Online (Sandbox Code Playgroud)
如果这就是您想要做的,请务必阅读 debian-policy about debian_revisionin version。