deb文件名的命名标准是什么?

deb文件名的命名标准是什么?

我想找出 deb 文件名的标准。例如,我有一个文件名为foo_1.0.0-1_all.deb。正如我在Debian 常见问题解答有这样的约定:

<foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb

但这不是一个标准。它没有回答很多问题。例如:

  • 可以多久<foo>
  • 中允许使用的字符有哪些<foo>
  • 中可以有哪些值<DebianArchitecture>

是否有任何标准详细描述 deb 文件名?

答案1

嗯,正如你所说,deb 文件的名称foo_VVV-RRR_AAA.deb只是.deb文件命名的约定,其中VVVRRRAAA是包的版本,修订和体系结构foo

此外,在使用以下方式构建软件包时,建议(规定)使用此约定拆除或者git-buildpackage

如果你同意这个惯例就可以了,如果不同意,你可以.deb随意重命名你的文件,但只能通过遵循这些规则(在这种情况下,也许您必须运行dpkg --info <deb_file>来查找通常可以使用上述约定获取的 deb 文件名的简单信息)。

现在,您可以在文件名 - 维基百科

文件名没有通用的编码标准。

由于文件名必须在软件环境之间交换(例如网络文件传输、文件系统存储、备份和文件同步软件、配置管理、数据压缩和归档等),因此在应用程序之间不要丢失文件名信息非常重要。这导致 Unicode 被广泛采用作为文件名编码的标准,尽管旧版软件可能不支持 Unicode。

[...] 文件名最大长度不是标准的,可能取决于代码单元大小。虽然这是一个严重的问题,但在大多数情况下,这是一个有限的问题。

因此,如果文件名没有通用标准,我几乎可以肯定.deb文件名也没有特殊标准。或者,如果您仍然感到困惑,请以惯例为标准,然后遵循这些规则

答案2

Debian 软件包名称在 Debian 政策第 3.1 节中定义The package name 这里,这引出了第 5.6.1 节Source 这里。注意,明确写明了以包名作为文件名。

UbuntuubuntuX在此基础上添加了版本号。这在 Ubuntu 打包指南部分中有记录The changelog 这里。如果 URL 将来发生变化,我将复制它以确保安全:

请注意,版本号后缀为 -0ubuntu1,这是发行版修订版,用于使用同一源发布版本中的新上传来更新包装(例如,修复错误)。

Ubuntu 和 Debian 的软件包版本控制方案略有不同,以避免源版本相同的软件包发生冲突。如果 Debian 软件包在 Ubuntu 中发生更改,则会在 Debian 版本的末尾附加 ubuntuX(其中 X 是 Ubuntu 修订号)。因此,如果 Debian hello 2.6-1 软件包被 Ubuntu 更改,则版本字符串将为 2.6-1ubuntu1。如果 Debian 中不存在该应用程序的软件包,则 Debian 修订号为 0(例如 2.6-0ubuntu1)。

答案3

以下是关于命名约定的一些想法:

如果您使用过 Debian 一段时间,您可能已经注意到 Debian 软件包文件都遵循某些命名约定。每个 Debian 二进制软件包的文件名都应遵循以下格式:packagename_version_arch.deb,其中“packagename”是软件包的名称,“version”是软件包版本,包括主版本号、次版本号和修订号,“arch”是软件包的体系结构。<..>

IBM 网站

虽然这个是用于 RPM,但它也有一个非常好的命名约定: 姓名-版本-发布建筑学.rpm

在哪里:

  • 姓名是描述打包软件的名称。

  • 版本是软件包的版本。

  • 发布是该版本软件被打包的次数。

  • 建筑学是描述软件包所要运行的计算机硬件类型的简写名称。它也可能是字符串 src 或 nosrc。这两个字符串都表示该文件是 RPM 源包。nosrc 字符串表示该文件仅包含软件包构建文件,而 src 字符串表示该文件包含必要的软件包构建文件和软件的源代码。

RPM 社区

相关内容