我想找出deb文件名的标准。例如,我的文件名为foo_1.0.0-1_all.deb
。正如我在Debian FAQ中发现的那样,有这样的约定:
<foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
但这不是标准。它不能回答很多问题。例如:可以持续多久?允许使用什么字符?可以包含哪些值?
是否有任何标准详细描述了deb文件名?
我想找出deb文件名的标准。例如,我的文件名为foo_1.0.0-1_all.deb
。正如我在Debian FAQ中发现的那样,有这样的约定:
<foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
但这不是标准。它不能回答很多问题。例如:可以持续多久?允许使用什么字符?可以包含哪些值?
是否有任何标准详细描述了deb文件名?
Answers:
那么,如你所说,这个名字foo_VVV-RRR_AAA.deb
对于一个deb文件仅仅是命名惯例.deb
文件,其中VVV
,RRR
并且AAA
是包的版本,修订和架构foo
。
另外,在使用debuild或git-buildpackage构建软件包时,建议(指示)该约定。
如果您同意该约定是可以的,那么您可以.deb
按自己的意愿重命名文件,但是只能遵循以下规则(在这种情况下,您可能必须运行dpkg --info <deb_file>
以查找通常可以使用上述约定获得的简单信息) (代表deb档案名称)。
现在,您可以在Filename-Wikipedia上阅读:
文件名没有通用的编码标准。
由于必须在软件环境之间交换文件名(请考虑网络文件传输,文件系统存储,备份和文件同步软件,配置管理,数据压缩和归档等),因此在应用程序之间不丢失文件名信息非常重要。尽管旧版软件可能不支持Unicode,但这导致Unicode被广泛用作编码文件名的标准。
[...]文件名的最大长度不是标准的,并且可能取决于代码单元的大小。尽管这是一个严重的问题,但在大多数情况下,这是一个有限的问题。
因此,如果总体上没有文件名标准,那么我几乎可以肯定没有.deb
文件名的特殊标准。或者,如果您仍然感到困惑,则以约定为标准,并遵循以下规则。
以下是有关命名约定的一些想法:
如果您使用Debian已有一段时间,您可能已经注意到Debian软件包文件都遵循某些命名约定。每个Debian二进制软件包都应具有遵循以下格式的文件名:packagename_version_arch.deb,其中“ packagename”是软件包的名称,“ version”是具有主要,次要和修订号的软件包版本,而“ arch”是软件包的体系结构。<..>
尽管这是RPM的,但它还有一个很好的命名约定: name - version - release。架构 .rpm
哪里:
name是描述打包软件的名称。
版本是打包软件的版本。
发布是此软件版本被打包的次数。
架构是一种简写名称,描述了打包软件要在其上运行的计算机硬件的类型。它也可以是字符串src或nosrc。这两个字符串都表明该文件是RPM源程序包。nosrc字符串表示该文件仅包含软件包生成文件,而src字符串表示该文件包含必需的软件包生成文件和软件的源代码。