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