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

bes*_*bov 12 package-management packaging deb

我想找出 deb 文件名的标准。例如,我有一个名为foo_1.0.0-1_all.deb. 正如我在Debian FAQ 中发现的那样,有这样的约定:

<foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
Run Code Online (Sandbox Code Playgroud)

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

  • 可以<foo>多久?
  • 中允许的字符是<foo>什么?
  • 可以包含哪些值<DebianArchitecture>

有没有详细描述 deb 文件名的标准?

Rad*_*anu 5

那么,如你所说,这个名字foo_VVV-RRR_AAA.deb对于一个deb文件仅仅是命名惯例.deb文件,其中VVVRRR并且AAA是包的版本,修订和架构foo

此外,在使用debuildgit-buildpackage构建包时,建议(指定)使用此约定。

如果您同意此约定,则可以,否则,您可以根据需要重命名.deb文件,但只能遵循这些规则(在这种情况下,您可能必须运行dpkg --info <deb_file>以查找通常可以使用上述约定获得的简单信息对于 deb 文件名)。

现在,正如您在Filename - Wikipedia 中所读到的:

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

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

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

所以,如果一般的文件名没有标准的话,我几乎可以肯定,没有.deb文件名的特殊标准。或者,如果您仍然感到困惑,请以约定为标准,并遵循这些规则


Pau*_*kys -1

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

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

来自IBM.com

虽然这个是针对 RPM 的,但它也有一个非常好的命名约定: 名称-版本-发行版架构.rpm

在哪里:

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

  • version是打包软件的版本。

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

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

来自RPM.org