版本号(release version number或version number)是用「让人方便理解的」数字来描述正式发布的程序的新旧的方式。版本号以几个数字组合而成,有时也附加字母、单词等辅助表示。虽然版本号没有统一的标准,各家软件的版本号的规则多有差异,但是版本号也是有习惯用法的,尤其对于基础设施的程序而言。如果使用不规范的版本号会使人困惑。以下所述的规则仅表示常见情况,并不是所有软件都遵循这个规律。对于其他类型的产品,虽然也会采用版本号的形式,但是他们的规则和常规软件是不同的。
版本号通常由三个数字组成,由点号.分隔,表示为X.Y.Z的形式。如0.1.0、1.0.0、2.3.4、2.10.0等等。注意点号是分隔符,不是小数点,也就是说,9的之后是10,不能进位。
其中,第一个数字代表大版本号(major version number),表示软件的重大的结构变动。大版本号不同的软件是不保证互相兼容的。
第二个数字代表小版本号(minor version number),表示软件的功能调整或增添。大版本号相同,小版本号不同的软件有功能差异,但是大体是相互兼容的。
第三个数字代表修订版本号(revision version number)或补丁版本号(patch version number),表示软件修复漏洞和缺陷。大、小版本号都相同,修订版本号不同的软件是相互兼容的,功能也相同,只不过是新版本修正了旧版本中的一些错误。
版本号可以省略一部分。原本是三位的X.Y.Z可以省略掉修订版本号变成X.Y。有时也会继续省略掉小版本号变成只有一个数字的大版本号。
版本号是连续的。每推出一个新的修订版本,修订版本号就加一。比如说大、小版本号为2.8的程序,第一个版本为2.8.0,修订一次是2.8.1,修订两次是2.8.2、之后依次为2.8.3、2.8.4、2.8.5、2.8.6、2.8.7、2.8.8、2.8.9、2.8.10、2.8.11、2.8.12等。
每次前面的版本号发生变动,后面的版本号就要清零。比如在版本号2.8.3的程序,如果推出功能更新,小版本号8就要变成9,同时修订版本号要清零,版本号就要变成2.9.0。如果2.8.3时推出结构变化,大版本号由2变3,后面的清零,版本号变为3.0.0。
通常程序的第一个版本是0.1.0。也有可能是1.0.0。
版本号可以比较大小(谁是先发布的,谁是后发布的),用上面的规则就很好判断了。
版本号其他可能出现的内容:
测试版本:测试版是在程序没有正式推出前,给大家体验功能、寻找缺陷的版本。通常用希腊字母的英文名称做后缀,但是通常只用alpha和beta。gamma很少见,一般beta之后就是正式版本。比如2.8.3alpha(第一个测试版)、2.8.3beta(第二个测试版)、2.8.3(正式版)
测试版本的另一种表示:用alpha或者beta和数字组合,比如2.8.3alpha1(第一个测试版)、2.8.3alpha2(第二个测试版)、2.8.3alpha3等。排队发布版(release candidate)是邻近正式发布的测试版,用rc表示,如2.8.3rc1(第一个排队发布版)、2.8.3rc2(第二个)、2.8.3rc3等。也有一种做法是把表示测试版本的字词直接放在修订版本号之前。
发布次序:只在编译后的软件中出现,源代码没有这个部分。不同的发布次序用的是相同的代码,只是开启的构建选项或者用于构建的环境不同。如2.8.3-1是最开始的发布、2.8.3-2是第二次、之后依次是2.8.3-3、2.8.3-4等。
散列值:这个通常源自使用git的代码库,每一个散列值代表一个版本。一些软件使用散列值的时候就不标注版本号了。在Archlinux的软件包规范中,通常是用「演变成这个版本的一个正式版本的版本号」加「这两个版本之间的距离数字」加「这个版本的散列值」构成一个很长的版本号。
日期、时间:很多时候也用日期来表示软件的版本,通常是对一个滚动更新(不设置版本号,时刻改变功能)的软件而言的。有的软件使用日期+时间的形式。
通常的包管理器为了辨别软件包的新旧(用于更新软件包),都会自带比较软件包版本的功能。debian系统可以使用命令:dpkg --compare-versions <一个版本号> <运算符> <另一个版本号>
dpkg --compare-versions <一个版本号> <运算符> <另一个版本号>
此外比较容易混淆的概念是版本代号(release code name),代号是称呼某些版本的外号,并不需要什么逻辑,仅是社区或者开发者的一种文化风俗,并不是所有软件都有。比如debian 10又名debian buster;debian 11又名debian bullseye;debian 12又名debian bookworm。debian的代号都是选自《玩具总动员》中的角色名。其他系统有代号的也很多,比如Ubuntu、Mac OS、Android等。
不符合上边版本号规律的软件也有很多,比如chromium,他是四个数字组成,第一个是大版本号,但是他想什么时候发布就什么时候发布(被诟病的「刷版本号」);第二个是小版本号,曾经是用过的,现在是一直保持为0;第三个版本号从不清零,每次更新功能数值都会增加;第四个和修订版本号类似。
感谢分享
学习了
Featured Collection
Popular Ranking
Popular Events
版本号(release version number或version number)是用「让人方便理解的」数字来描述正式发布的程序的新旧的方式。版本号以几个数字组合而成,有时也附加字母、单词等辅助表示。虽然版本号没有统一的标准,各家软件的版本号的规则多有差异,但是版本号也是有习惯用法的,尤其对于基础设施的程序而言。如果使用不规范的版本号会使人困惑。以下所述的规则仅表示常见情况,并不是所有软件都遵循这个规律。对于其他类型的产品,虽然也会采用版本号的形式,但是他们的规则和常规软件是不同的。
版本号通常由三个数字组成,由点号.分隔,表示为X.Y.Z的形式。如0.1.0、1.0.0、2.3.4、2.10.0等等。注意点号是分隔符,不是小数点,也就是说,9的之后是10,不能进位。
其中,第一个数字代表大版本号(major version number),表示软件的重大的结构变动。大版本号不同的软件是不保证互相兼容的。
第二个数字代表小版本号(minor version number),表示软件的功能调整或增添。大版本号相同,小版本号不同的软件有功能差异,但是大体是相互兼容的。
第三个数字代表修订版本号(revision version number)或补丁版本号(patch version number),表示软件修复漏洞和缺陷。大、小版本号都相同,修订版本号不同的软件是相互兼容的,功能也相同,只不过是新版本修正了旧版本中的一些错误。
版本号可以省略一部分。原本是三位的X.Y.Z可以省略掉修订版本号变成X.Y。有时也会继续省略掉小版本号变成只有一个数字的大版本号。
版本号是连续的。每推出一个新的修订版本,修订版本号就加一。比如说大、小版本号为2.8的程序,第一个版本为2.8.0,修订一次是2.8.1,修订两次是2.8.2、之后依次为2.8.3、2.8.4、2.8.5、2.8.6、2.8.7、2.8.8、2.8.9、2.8.10、2.8.11、2.8.12等。
每次前面的版本号发生变动,后面的版本号就要清零。比如在版本号2.8.3的程序,如果推出功能更新,小版本号8就要变成9,同时修订版本号要清零,版本号就要变成2.9.0。如果2.8.3时推出结构变化,大版本号由2变3,后面的清零,版本号变为3.0.0。
通常程序的第一个版本是0.1.0。也有可能是1.0.0。
版本号可以比较大小(谁是先发布的,谁是后发布的),用上面的规则就很好判断了。
版本号其他可能出现的内容:
测试版本:测试版是在程序没有正式推出前,给大家体验功能、寻找缺陷的版本。通常用希腊字母的英文名称做后缀,但是通常只用alpha和beta。gamma很少见,一般beta之后就是正式版本。比如2.8.3alpha(第一个测试版)、2.8.3beta(第二个测试版)、2.8.3(正式版)
测试版本的另一种表示:用alpha或者beta和数字组合,比如2.8.3alpha1(第一个测试版)、2.8.3alpha2(第二个测试版)、2.8.3alpha3等。排队发布版(release candidate)是邻近正式发布的测试版,用rc表示,如2.8.3rc1(第一个排队发布版)、2.8.3rc2(第二个)、2.8.3rc3等。也有一种做法是把表示测试版本的字词直接放在修订版本号之前。
发布次序:只在编译后的软件中出现,源代码没有这个部分。不同的发布次序用的是相同的代码,只是开启的构建选项或者用于构建的环境不同。如2.8.3-1是最开始的发布、2.8.3-2是第二次、之后依次是2.8.3-3、2.8.3-4等。
散列值:这个通常源自使用git的代码库,每一个散列值代表一个版本。一些软件使用散列值的时候就不标注版本号了。在Archlinux的软件包规范中,通常是用「演变成这个版本的一个正式版本的版本号」加「这两个版本之间的距离数字」加「这个版本的散列值」构成一个很长的版本号。
日期、时间:很多时候也用日期来表示软件的版本,通常是对一个滚动更新(不设置版本号,时刻改变功能)的软件而言的。有的软件使用日期+时间的形式。
通常的包管理器为了辨别软件包的新旧(用于更新软件包),都会自带比较软件包版本的功能。debian系统可以使用命令:
dpkg --compare-versions <一个版本号> <运算符> <另一个版本号>此外比较容易混淆的概念是版本代号(release code name),代号是称呼某些版本的外号,并不需要什么逻辑,仅是社区或者开发者的一种文化风俗,并不是所有软件都有。比如debian 10又名debian buster;debian 11又名debian bullseye;debian 12又名debian bookworm。debian的代号都是选自《玩具总动员》中的角色名。其他系统有代号的也很多,比如Ubuntu、Mac OS、Android等。
不符合上边版本号规律的软件也有很多,比如chromium,他是四个数字组成,第一个是大版本号,但是他想什么时候发布就什么时候发布(被诟病的「刷版本号」);第二个是小版本号,曾经是用过的,现在是一直保持为0;第三个版本号从不清零,每次更新功能数值都会增加;第四个和修订版本号类似。