软件版本研究

本文的主要内容转载自:http://blog.csdn.net/lanmanck/article/details/7783924,筛选罗列出自认为比较重要的知识点,先归纳如下,以备后期查阅。

Technorati 标签: 版本管理

---------------------------------------分割线开始-------------------------------------------------

1.2 APR 版本规则

对于任何大规模的软件项目来说,必然会设计到分层次设计理念,而层与层之间的接口需要统一规范,稳定的API接口规范是必须要考虑的。由于项目的不断发展、进化,API接口的变化又是必然的趋势,如何在稳定性和变化性之间寻求一个平衡,使得版本尽可能的平滑过渡,减少过渡过程中的工作量,为次,APR采用严格的版本规则来保证。用户通过版本号即可很容易确定当期版本的兼容性:向前兼容、向后兼容,还是前后同时兼容。

向前兼容,英文为 Forwards Compatibility,

向后兼容,英文为 Backwards Compatibility,

先来解释一下概念,比如一个软件版本, 底层库版本从 A ----> B  ----> C ,上层应用软件A1现在是基于A库运行的。现在新发布的底层库版本是B,如果A1可以不经过修改,就可以在B库上运行,那么就是说,B库是向后兼容的。

举个例子,用office 2007创建的文件,可以用office 2003来打开,那么可以说 office 2007是向前兼容的。

用office 2007创建的文件,可以用office 2010来打开,那么可以说 office 2007是向后兼容的。

1.2.1 版本概述

APR中使用三个整数来记录版本号:Major:Minor:Patch。

Major代表主版本号,它的变化通常意味着版本的重大变化,比如体系结构的重新设计,API的重新设计等等,往往这种变化会导致向前不兼容。

Minor代表次版本号,它的变化通常反映一些较大的更改,比如API的增加等

Patch代表补丁版本,它的变化通常反映对API函数的内部修改,而不影响API的接口。

除了源代码方面的兼容性,在版本的更替中,更能够希望保持二进制的兼容性,这意味着应用程序可以直接使用高版本的底层库替换低版本的库文件,而不需要做任何修改,就可以编译连接成功。

1.2.2 版本策略

通常来说,patch的变化不影响版本源码和二进制级别的前向兼容和后向兼容,在patch补丁中,任何对API的增加、修改和删除都是不允许的。

任何新函数、新变量以及新常量的引入,旧函数的废除或替换都将可能导致次版本号的变化。

1.2.3 版本检查

在编译不同版本时,要确保能够在编译期间以及使用期间,能够清晰简单的检查版本号。

通常会有类型如下的版本规则结构体,

typedef struct {

int major;      /**< major number */

int minor;      /**< minor number */

int patch;      /**< patch number */

int is_dev;     /**< is development (1 or 0) */

} apr_version_t;

major是当前程序版本的主版本号,minor则是次版本号,patch对应的则是补丁号。is_dev则描述了当前版本的状态,发布版为1,测试版为0。

对此结构体的具体操作,需要有查看当前版本类型、设置当前版本类型、检查当前版本类型等等。

下面介绍Linux版本号相关知识:

major.minor.patch-build.desc
1、major:表示主版本号,有结构性变化时才变更。
2、minor:表示次版本号,新增功能时才发生变化;一般奇数表示测试版,偶数表示生产版。
3、patch:表示对次版本的修订次数或补丁包数。
4、build:表示编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化。
5、desc:用来描述当前的版本特殊信息;其信息由编译时指定,具有较大的随意性,但也有一些描述标识是常用的,
比如:
<1>rc(有时也用一个字母r),表示候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版。  
<2>smp,表示对称多处理器 (Symmetric MultiProcessing)。  
<3>pp,在Red Hat Linux中常用来表示测试版本(pre-patch)。
<4>EL,在Red Hat Linux中用来表示企业版Linux(Enterprise Linux)。  
<5>mm,表示专门用来测试新的技术或新功能的版本。  
<6>fc,在Red Hat Linux中表示Fedora Core。

Alpha版本是内部测试版,是比Beta版还早的测试版,一般不向外部发布,会有很多Bug,除非你也是测试人员,否则不建议使用。
Beta版本是测试版,这个阶段的版本会一直加入新的功能。
RC版本(Release Candidate) 是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错。  
RTM版本(Release to Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的。  
OEM版本是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。如果买笔记型计算机或品牌计算机就会有随机版软件。包装不像零售版精美,通常只有一面CD和说明书(授权书)。  
RTL版本(Retail)是真正的正式版,正式上架零售版。

时间: 2024-08-04 19:18:40

软件版本研究的相关文章

centos/linux alternatives与update-alternatives详解与软件版本切换

update-alternatives是linux系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了open jdk和sun jdk两个版本,而我们又希望系统默认使用的是sun jdk,那怎么办呢?通过update-alternatives就可以很方便的实现了. 根据update-alternatives 命令查看该命令的选项 [[email protected] ~]$ update-alternativesalterna

在Ubuntu中通过update-alternatives切换软件版本

http://persevere.iteye.com/blog/1479524 update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了open jdk和sun jdk两个版本,而我们又希望系统默认使用的是sun jdk,那怎么办呢?通过update-alternatives就可以很方便的实现了. sudo update-alternatives --install /usr/b

转:软件版本的定义

from: http://m.blog.csdn.net/article/details?id=8086731 软件版本RC,M,GA…… 发表于2012/10/18 17:25:45  3469人阅读 分类: 数据库 杂&扯淡 RC版本 RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release是发行.发布的意思.Release.Candidate.就是发行候选版本.和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了R

软件版本命名规范

  1.版本命名规范 软件版本号有四部分组成,第一部分为主版本号,第二部分为次版本号,第三部分为修订版 本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有五种,分别为base.alpha.beta .RC . release   2.软件版本阶段说明 Base:此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是    页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构. Alpha :软件的初级版本,表示该软件在此阶段以实现软件功能为主,通常只在软件

国产软件系列研究:大型企业最担心信息安全

为调查大型企业信息化当前面临的挑战,分析国产软件在大型企业信息化中如何实施,海比研究联合用友软件成立了大型企业信息系统国产化路径的专项研究小组,主要针对国产软件进行深入的专项研究.该研究从 2014 年 3 月启动,历时 3 个月,研究小组采访了20位专家,访谈对象包括来自国产软件提供商.实施服务商.最终用户.研究机构的资深专家,以及127 家各行业的大型企业用户.企业用户的访谈对象主要为 CIO.信息化负责人,以及管理层人员,最终形成了本研究成果. 信息化面临的新挑战 不论大型企业建设与运维信

软件版本GA,RC,alpha,beta含义

软件版本GA,RC,alpha,beta含义 (1)RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release.Candidate.就是发行候选版本.和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! 是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版 (2)GA:(general availability) 比如:Ap

软件版本GA,RC,alpha,beta,Build 含义

(1)RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release.Candidate.就是发行候选版本.和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! 是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版 (2)GA:(general availability) 比如:Apache Struts 2 GA 这是Apac

Ubuntu下查看软件版本及安装位置

查看软件版本:aptitude show xxx 也可用apt-show-versions (要先安装sudo apt-get install apt-show-versions) 查看软件安装位置:dpkg -L xxxx 查看软件是否安装:dpkg -l | grep filename

软件版本命名

这里收集一篇软件版本命名规范,百度找的,在此就借用了. 1.1  版本命名规范 软件版本号有四部分组成,第一部分为主版本号,第二部分为次版本号,第三部分为修订版 本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有五种,分别为base.alpha.beta.RC.release 1.2  软件版本阶段说明 base:此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构. alpha :软件的初级版本,表示