专利名称:操作系统版本自动发布和软件包自动更新的系统及方法
技术领域:
本发明涉及软件版本控制和发布技术领域,尤其涉及一种操作系统开发过程中版 本自动发布和编译软件包自动更新的系统及方法。
背景技术:
目前,操作系统的版本自动发布和软件包更新的工作大多还停留在手工管理阶 段。而在操作系统的开发过程中,开发人员需要将开发出的软件包的源代码上传到SVN服 务器中,再通过邮件通知配置管理员软件包的更新情况,在该配置管理员收到邮件后,需要 根据邮件中提供的项目名称、项目版本等信息从SVN服务器中查找出软件包的源代码,然 后以手动的方式将源代码放到项目对应的编译服务器中进行编译。最后,根据软件包编译 结果,该配置管理员给开发人员发送邮件,告诉开发人员软件包编译的结果是成功还是失 败。如果编译失败了,开发人员需要重新修改源代码,待修改完毕后再重复上述过程,直到 软件包编译成功为止。
这里存在几个问题一是配置管理员和开发人员的沟通不畅通。配置管理员不一 定能够及时查看邮件,所以源代码更新到SVN服务器后不能保证马上进行编译,不能及时 给开发人员反馈结果。而且如果多个开发人员频繁更新不同的软件包,配置管理员需要逐 个手工编译每个软件包,可能会造成软件包的积压,也不能及时给开发人员反馈结果。二是 配置管理员存在重复工作。配置管理员需要不断地从SVN服务器中下载源代码,然后在编 译服务器上进行编译,编译结束后再写邮件,这都是一些机械而且费时的操作。三是多个项 目同时进行容易出错。目前的情况是每个项目需要创建自己的SVN服务器存放源代码,在 自己的编译服务器上编译软件包,配置管理员需要同时管理多台服务器。当配置管理员疏 忽时,可能会将一个项目中软件包的源代码放到另一个项目的编译服务器上进行编译,这 必然后造成错误结果。
另外,目前系统的发布过程也存在问题,一般的做法是项目负责人将系统发布 计划告知配置管理员,由配置管理员在指定的发布时间去指定的发布机器上发布系统,而 多个项目同时进行时配置管理员存在混淆各个项目发布计划的可能,因而容易造成人为失误。
由此可见,目前的操作系统版本发布和软件包更新的管理工作存在效率低、沟通 不顺畅、容易发生人为错误的缺点。发明内容
有鉴于此,本发明的主要目的在于提供一种操作系统版本自动发布和软件包自动 更新的系统及方法,使之有效管理软件包和操作系统发布过程,以降低配置管理员的工作 量和减少人为失误造成的损失的可能。
为达到上述目的,本发明的技术方案是这样实现的一种操作系统版本自动发布和软件包自动更新的系统,包括若干开发人员使用的工作客户端;该系统还包括SVN服务器、编译服务器、FTP服务器及配置管理员使用的配置管理 终端;其中,所述工作客户端与所述SVN服务器相连接,用于开发人员开发修改软件包, 并将软件包上传到所述SVN服务器的软件库中;所述SVN服务器与所述编译服务器相连接,所述SVN服务器设置有软件库,用于存放软 件包,并向所述编译服务器发送编译指令和系统版本发布指令;所述配置管理终端与所述SVN服务器相连,用于配置管理员管理软件包更新过程和系 统版本发布过程,并通过所述SVN服务器向配置管理员反馈信息;所述编译服务器与所述FTP服务器相连,用于将系统发布生成的镜像文件上传到所述 FTP服务器中,并用来编译软件包和发布系统版本;所述FTP服务器与所述SVN服务器相连,用于配置管理员通过所述SVN服务器查看所 述FTP服务器上存放的镜像文件;上述SVN服务器、FTP服务器、编译服务器和配置管理终端以及工作客户端上均安装有 软件自动化测试框架STAF,用于各台机器之间进行相互通信。
其中,所述SVN服务器的软件库中,还设有一个软件包配置文件,用于记录软件包 的基本信息;以及一个编译服务器配置库,用于存放项目和编译服务器的对应关系。
所述编译服务器,根据项目数量的需要配置多组,每组编译服务器进一步包含多 台编译机。
一种操作系统版本自动发布的方法,该方法包括a、配置管理员向SVN服务器配置系统发布策略,该策略包含以下内容项目名称、项目 版本、项目架构和发布时间信息;b、当发布时间一到,SVN服务器会自动分析发布策略的内容,根据项目名称、项目版本、 项目架构从编译服务器配置库中查找编译服务器,向编译服务器发送系统发布指令;C、编译服务器接收到系统发布指令后,利用编译生成的二进制文件,调用版本发布程 序,生成系统镜像文件,然后将镜像文件放置到FTP服务器上特定的目录,进行发布,然后 向SVN服务器发送系统发布完成指令;d、SVN服务器接收到系统发布完成指令后,向配置管理员发送邮件,通知配置管理员, 结束该发布过程。
一种操作系统软件包自动更新的方法,该方法包括A、初始化SVN服务器,在SVN服务器上创建用于管理所有项目的软件包的软件库;B、开发人员在自己的机器上开发完成一个软件包后,将该软件包的源代码上传到软件 库中,同时向软件包配置文件中增加一条记录信息;C、SVN服务器启动更新检测程序,检测软件库的更新情况,根据更新软件包名称从软件 包配置文件中查找软件包所属的项目名称、项目版本、项目架构信息,从编译服务器配置库 中查找相应的编译服务器,然后向编译服务器发送编译指令;D、编译服务器接收到编译指令后,对编译指令进行解析,包括编译指令中的项目名称、 项目版本、项目架构的信息;E、当编译结束后,编译服务器会自动分析编译过程中生成的日志信息,分析软件包编译是否成功;如果编译失败,则分析得出失败的原因;如果编译成功,则将编译生成的二进 制文件存放到编译服务器的特定目录中;该编译服务器将日志分析结果作为反馈信息,并 向SVN服务器发送编译完成指令;F、SVN服务器解析收到的编译完成指令,分析编译结果;在接收到所有编译服务器发 送来的编译完成指令后,SVN服务器对编译结果进行汇总,向配置管理员和开发人员发送邮 件,告知本次软件包更新的结果。
一种利用所述系统进行操作系统版本自动发布方法,其特征在于,该方法包括a、制定系统发布计划,配置管理员根据各个项目的实际情况提前制定系统发布计划, 并且将发布计划注册到SVN服务器,包括项目名称、项目版本、项目架构和发布时间信息;b、在系统发布前一定时间N小时内,SVN服务器向该项目所有的开发人员发送邮件,告 知开发人员系统发布信息,提醒开发人员尽快将更新的软件包上传到SVN服务器的软件库 中;所述N为自然数;c、在系统发布前M小时,SVN服务器自动关闭这个项目的上传权限,禁止开发人员向软 件库中上传软件包;所述M为自然数,且N>M ;d、到了配置管理员制定的发布时间,SVN服务器根据发布计划的项目名称、项目版本、 项目架构从编译服务器配置库中查找发布服务器,然后向发布服务器下达发布指令;该发 布服务器接收到发布指令后,调用系统发布程序,生成系统镜像文件,上传到FTP服务器指 定目录,完成发布工作,并且向SVN服务器发送发布完成指令;e、SVN服务器接收到发布完成指令后,发布工作结束,向配置管理员发送邮件,邮件内 容包括发布完成的时间,发布结果,镜像文件的名称和在FTP服务器上的存放位置,系统 发布时的日志文件信息。
步骤e进一步包括SVN服务器开启所述项目的上传权限,并向开发人员发送邮 件,说明发布工作结束。
一种利用所述系统的SVN服务器进行软件包更新的方法,该方法包括A、开发人员将软件包的源代码上传到SVN服务器;B、SVN服务器检测开发人员上传的源代码,并检查以下信息开发人员是否有权限更 新该软件包、开发人员提交源代码时是否填写了日志信息、开发人员填写的项目名称、项目 架构是否正确;若检查没有通过,则SVN服务器禁止源代码上传到软件库中,若检查通过, SVN服务器将软件包的源代码上传到软件库中;C、SVN服务器检测软件库的更新情况,从软件包配置文件中查找更新软件包的信息,包 括项目名称、项目版本、项目架构;D、SVN服务器得到软件包的项目名称、项目版本、项目架构信息后,根据项目名称、项目 版本和项目架构去编译服务器配置库中查找编译服务器的IP地址,以确定这个软件包到 底应该在哪台编译服务器上进行编译;E、确定编译服务器的IP地址后SVN服务器向编译服务器发送编译指令。
本发明所提供的操作系统版本自动发布和软件包自动更新的系统及方法,具有以 下优点采用本发明方法的版本自动发布和软件包自动更新的系统,其配置管理员不再需要奔 波在各台编译服务器、编译软件包和发布系统之间,只需在自己的工作机上配置SVN服务器中的编译服务器配置库,通过该工作机上配置几条系统发布策略就可以完成系统发布和 软件包的编译工作,因此,显著减少了配置管理员的工作量,明显降低了发生人为错误的概 率。多个项目共用一个软件库,降低了软件库维护的工作量。另外,采用本发明方法的上述 系统,其开发人员上传到软件库中的源代码会自动发送到编译服务器进行编译,编译结束 后系统还会马上向开发人员反馈编译结果,减少了开发人员的等待时间,整个软件包更新 过程更加顺畅。
图1为本发明的操作系统版本自动发布和软件包自动更新的系统的总体架构图; 图2为本发明系统的SVN服务器中软件包更新流程图;图3为本发明系统的编译服务器中软件包编译流程图; 图4为本发明系统的编译服务器的编译结果反馈流程图; 图5为本发明系统的版本自动发布流程图。
具体实施方式
下面结合附图及本发明的实施例对本发明的系统及方法作进一步详细的说明。
图1为本发明的操作系统版本自动发布和软件包自动更新的系统的总体架构图, 如图ι所示,本发明系统中的机器分为5类,其主要包括SVN服务器、编译服务器、FTP服务 器、若干开发人员的工作客户端及配置管理员使用的配置管理终端。这里,编译服务器可根 据项目数量的需要配置多组,每组编译服务器进一步可包含多台编译机。其中,所述工作客户端与所述SVN服务器相连接,用于开发人员开发、修改软件包,并将软件 包上传到所述SVN服务器的软件库中。
所述SVN服务器与所述编译服务器相连接,其中设置一个软件库,该软件库中存 放所有项目的软件包,并向所述编译服务器发送编译指令和系统发布指令,SVN服务器中需 要安装SVN软件。
所述编译服务器与所述SVN服务器相连,用来编译软件包和发布系统版本。由于 系统可以同时管理多个项目,因此需要配置多台编译服务器。这里,该编译服务器用于发布 系统时又称为发布服务器。还可规定项目一的软件包只能在项目一的编译服务器上进行编 译、项目二的软件包只能在项目二的编译服务器上进行编译,每款操作系统对应一个开发 项目。例如项目一编译机可设置三台,分别对应X86_32、X86_64、IA64等不同架构;项目 二的编译机的设置与之类似,这里不再赘述。
所述FTP服务器分别与所述编译服务器和所述SVN服务器相连,所述编译服务器 将系统发布生成的镜像文件上传到所述FTP服务器中,配置管理员通过所述SVN服务器查 看所述FTP服务器上存放的镜像文件,FTP服务器中需要安装FTP软件。
所述配置管理终端与所述SVN服务器相连,用于配置管理员管理软件包更新过程 和系统版本发布过程,并通过所述SVN服务器向配置管理员反馈信息。
上述SVN服务器、FTP服务器、编译服务器和配置管理终端以及工作客户端上均安 装有软件自动化测试框架STAF,用于其之间进行相互通信。
下面对应用本发明操作系统软件包更新及版本自动发布的系统进行软件包管理和版本发布流程进行分别说明。
一、采用该系统进行软件包管理的流程如下步骤10、初始化SVN服务器,在SVN服务器上创建一个软件库,由于这个软件库用于管 理所有项目的软件包,因此软件库中包含一个软件包配置文件,配置文件记录了各个软件 包属于的项目名称、项目版本、项目架构等信息。同时在SVN服务器中创建一个编译服务器 配置库,配置库中记录了软件库管理的项目的基本信息。包括项目名称、项目版本、项目架 构、项目对应的编译服务器的IP地址。
步骤11、开发人员在自己的机器上开发完成一个软件包后,将该软件包的源代码 上传到软件库中,同时向软件包配置文件中增加一条记录信息。SVN服务器会对软件包进行 必要的检查。如检查该软件包会不会对其他项目造成影响、开发人员是否填写了足够的日 志信息、开发人员提供的软件包配置信息是否正确和全面等。若检测到有错误,则该SVN服 务器将不允许源代码提交到软件库中;若通过检测,则将该软件包(源代码文件)提交到软 件库中。
步骤12、SVN服务器启动更新检测程序,检测软件库的更新情况,根据更新软件包 名称从软件包配置文件中查找软件包所属的项目名称、项目版本、项目架构等信息。然后, 从编译服务器配置库中查找相应的编译服务器,然后向编译服务器发送编译指令。
步骤13、编译服务器接收到编译指令后,对编译指令进行解析,包括编译指令中的 项目名称、项目版本、项目架构等信息。确认无误后从编译指令取出需要编译的软件包名 称。编译服务器自动从SVN服务器上的软件库中下载这个软件包的源代码到本地进行编 译。软件包的编译具有依赖性,如果软件包A依赖软件包B,当编译服务器中缺少软件包B 时,软件包A将无法正常编译。采用本方法构建的系统中,编译服务器具有分析能力,可以 分析出软件包需要的依赖包,然后从其他地址(如互联网)自动下载软件包B,从而保证软件 包A能够顺利编译。最后,将编译后生成的二进制文件存放在编译服务器的特定目录中。
步骤14、当编译结束后,编译服务器会自动分析编译过程中生成的日志信息,分析 软件包编译是否成功。如果编译失败,则分析得出失败的原因。该编译服务器还会将日志 分析结果作为反馈信息,并向SVN服务器发送编译完成指令。
步骤15、SVN服务器解析收到的编译完成指令,分析编译结果。当接收到所有编译 服务器发送来的编译完成指令后,SVN服务器对编译结果进行汇总,向配置管理员和开发人 员发送邮件,告知本次软件包更新的结果。
二、采用该系统进行操作系统发布的流程说明如下步骤20、配置管理员向SVN服务器配置系统发布策略,策略包含以下内容项目名称、 项目版本、项目架构、发布时间等。
步骤21、当发布时间一到,SVN服务器会自动分析发布策略的内容,根据项目名 称、项目版本、项目架构从编译服务器配置库中查找编译服务器,向编译服务器发送系统发 布指令。
步骤22、编译服务器接收到系统发布指令后,利用编译生成的二进制文件,调用版 本发布程序,生成系统镜像文件,然后将镜像文件放置到FTP服务器上特定的目录,进行发 布,然后向SVN服务器发送系统发布完成指令。
步骤23、SVN服务器接收到系统发布完成指令后,向配置管理员发送邮件,通知配置管理员,结束该发布过程。
这里,SVN服务器中需要安装SVN软件,SVN服务器中设置软件库存放所有项目的 软件包。由于各种类型的机器之间要发送消息,因此所有的机器上面都安装了软件自动化 测试框架(STAF,Software Testing Automation Framework)。本发明系统利用 STAF 提供 的服务完成指令的发送与接收以及邮件发送工作。为了能够同时管理多个项目,软件库中 存在一个软件包配置文件,用于记录软件包的基本信息。每条配置信息包含以下字段软件包名称软件包版本项目名称项目版本项目架构 比如下面这条配置信息zlib 1. 2. 3 =NFSARK :1. 0 :X86_32,X86_64,IA64表示NFSARK项目1. 0版本中有个软件包,名称是ζ lib,软件包的版本是1. 2. 3,这个软 件包支持X86_32、X86_64和IA64这三种硬件架构。因此,我们需要在三台编译服务器上编 译这个软件包的源代码。
SVN服务器中还存在一个编译服务器配置库,用于存放项目和编译服务器的对应 关系。每条配置信息包含以下字段项目名称项目版本项目架构编译服务器IP地址 比如下面两条两条配置信息 NFSARK 1. 0 :X86_32 :192. 168. 0. 3 NFSARK 2. 0 :Χ86_64 :192. 168. 0. 4表示NFSARK项目1. 0版本适用于X86_32架构的软件包需要在192. 168. 0. 3这台编译 服务器上编译,而NFSARK项目2. 0版本适用于X86_64架构的软件包则需要在192. 168. 0. 4 这台编译服务器上编译。SVN服务器发送编译指令前会根据项目名称、项目版本和项目架构 在这个配置库中查找编译服务器的IP地址,以确定到底向哪台编译服务器发送编译指令。
图2为本发明系统的SVN服务器中软件包更新流程图,该流程包括如下步骤 步骤201、开发人员将软件包的源代码上传到SVN服务器。
步骤202 :SVN服务器检测开发人员上传的源代码,需要检查以下信息开发人员 是否有权限更新这个包(项目一的开发人员不允许更新项目二的软件包),开发人员提交源 代码时是否填写了日志信息等(日志信息可以方便配置管理员查看各个软件包的修改信 息),开发人员填写的项目名称、项目架构等信息是否正确,等等。如果检查没有通过,SVN服 务器禁止源代码上传到软件库中。
步骤203 检查通过后,SVN服务器将软件包的源代码上传到软件库中。然后根据 软件包名称、项目名称和项目版本去软件包配置文件中查找这个软件包适用的系统架构。
步骤204 :SVN服务器得到软件包的项目名称、项目版本、项目架构信息后,会根据 项目名称、项目版本和项目架构去编译服务器配置库中查找编译服务器的IP地址,以确定 这个软件包到底应该在哪台编译服务器上进行编译。
步骤205 确定编译服务器的IP地址后SVN服务器向编译服务器发送编译指令。 编译指令格式如下IP地址项目名称项目版本项目架构软件包1,软件包2,软件包3 比如下面这条编译指令192. 168. 0. 3:NFSARK1. 0:X86_32:zlib, acl, vim10表示向192. 168. 0. 3这台编译服务器发送编译指令,在这台编译服务器上编译NFSARK 项目1.0版本中的zlib、acl和vim这三个软件包。由于一般一个软件包适用于多种架构, 因此SVN服务器需要向多台编译服务器发送编译指令。
图3为本发明系统的编译服务器中软件包编译流程图,该流程包括步骤301 编译服务器接收到编译指令后,首先进行指令解析。将指令中提供的项目名 称、项目版本和项目结构信息与自己的配置信息对比,确定指令发送是否正确。如果二者信 息一致,则开始解析指令中的软件包名称,得到需要编译的软件包列表。
步骤302 编译服务器根据软件包名称、项目名称、项目版本和项目架构查看SVN 服务器软件库中的软件包配置文件,如果配置文件中存在这条记录表明软件库中存在这个 包。编译服务器从软件库中下载这个软件包的源代码到本地,然后进行编译,生成二进制文 件。编译服务器在编译前会检查这个软件包的依赖包。如果系统中不存在依赖包,编译服 务器会从其他地方(比如互联网)设法获得这个软件包。编译成功后,编译服务器会将编译 生成的二进制文件放到特定的目录中。
步骤303 软件包在编译过程中会生成日志文件,记录软件包编译结果。如果编译 成功,会记录下生成的二进制文件的名称;如果编译失败,会记录下失败的原因。软件包编 译结束后会查询日志文件,准备向SVN服务器发送编译结束消息。
步骤304 编译服务器根据查看到的日志信息,生成编译结束指令,向SVN服务器 反馈软件包编译结果。编译结束指令格式如下IP地址项目名称项目版本项目架构软件包1,错误码,二进制文件名称;软件包 2,错误码,二进制文件名称;软件包3,错误码,二进制文件名称。
比如下面这条指令192. 168. 0. 3NFSARK 1. 0X86_32ζ 1ib, 0, zlib-1. 2. 3-3. i 386. rpm;acl, 0, acl-2. 2. 47-4. i386. rpm表示编译服务器192. 168. 0. 3成功编译NFSARK项目1. 0版本中的zlib和acl,生成的 二进制文件名字是 zlib-1. 2. 3-3. 386. rpm 和 acl_2. 2. 47-4. 386. rpm。
图4为本发明系统的编译服务器的编译结果反馈流程图,详细描述了 SVN服务器 向配置管理员和开发人员反馈编译结果,该流程包括步骤401、SVN服务器接收到编译服务器发送的编译结束指令后,对指令进行解析,获 取软件包的编译结果信息。由于SVN向多台编译服务器发送了编译指令,因此会收到多条 编译结束指令。
步骤402、当SVN服务器接收到所有编译服务器发送回的编译结束指令后,SVN服 务器汇总各个编译服务器的编译结果。
步骤403 :SVN服务器会将汇总好的结果以邮件形式发送给配置管理员和开发人 员。这样配置管理员就能够及时了解软件库的更新情况,开发人员也能够及时得到软件包 编译的反馈信息。
图5为本发明操作系统版本自动发布流程图,图中实线表示前后两个事件在时间 上紧密相连,虚线表示前后两个事件在时间上有间隔,该流程包括步骤501 制定系统发布计划。配置管理员会根据各个项目的实际情况提前制定系统 发布计划,并且将发布计划注册到SVN服务器,包括项目名称、项目版本、项目架构和发布时间。
步骤502 在系统发布前6个小时,SVN服务器向这个项目所有的开发人员发送邮 件,提醒大家4个小时后SVN服务器将关闭这个项目的上传权限,6个小时后将进行系统发 布。开发人员如果有更新的软件包可以在4个小时内提交,新提交的软件包就可以集成到 这次发布的系统中。
步骤503 在系统发布前2个小时,SVN服务器自动关闭这个项目的上传权限,禁止 开发人员向软件库中上传软件包,目的是为了保证系统发布时的稳定性。
步骤504 到了配置管理员制定的发布时间,SVN服务器根据发布计划的项目名 称、项目版本、项目架构从编译服务器配置库中查找发布服务器,然后向发布服务器下达发 布指令。发布服务器接收到发布指令后,会调用系统发布程序,生成系统镜像文件,上传到 FTP服务器指定目录,完成发布工作,并且向SVN服务器发送发布完成指令。
步骤505 :SVN服务器接收到发布完成指令后,表示发布工作结束,向配置管理员 发送邮件,邮件内容包括发布完成的时间,发布结果,镜像文件的名称和在FTP服务器上 的存放位置,系统发布时的日志文件等信息。
步骤506 同时SVN服务器会开启这个项目的上传权限,并且向开发人员发送邮 件,说明发布工作结束,开发人员可以继续提交新的软件包了。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种操作系统版本自动发布和软件包自动更新的系统,包括若干开发人员使用的 工作客户端;其特征在于,该系统还包括SVN服务器、编译服务器、FTP服务器及配置管理员 使用的配置管理终端;其中,所述工作客户端与所述SVN服务器相连接,用于开发人员开发修改软件包,并将软件 包上传到所述SVN服务器的软件库中;所述SVN服务器与所述编译服务器相连接,所述SVN服务器设置有软件库,用于存放软 件包,并向所述编译服务器发送编译指令和系统版本发布指令;所述配置管理终端与所述SVN服务器相连,用于配置管理员管理软件包更新过程和系 统版本发布过程,并通过所述SVN服务器向配置管理员反馈信息;所述编译服务器与所述FTP服务器相连,用于将系统发布生成的镜像文件上传到所述 FTP服务器中,并用来编译软件包和发布系统版本;所述FTP服务器与所述SVN服务器相连,用于配置管理员通过所述SVN服务器查看所 述FTP服务器上存放的镜像文件;上述SVN服务器、FTP服务器、编译服务器和配置管理终端以及工作客户端上均安装有 软件自动化测试框架STAF,用于其之间进行相互通信。
2.根据权利要求1所述的操作系统版本自动发布和软件包自动更新的系统,其特征 在于,所述SVN服务器的软件库中,还设有一个软件包配置文件,用于记录软件包的基本信 息;以及一个编译服务器配置库,用于存放项目和编译服务器的对应关系。
3.根据权利要求1所述的操作系统版本自动发布和软件包自动更新的系统,其特征在 于,所述编译服务器,根据项目数量的需要配置多组,每组编译服务器进一步包含多台编译 机。
4.一种操作系统版本自动发布的方法,其特征在于,该方法包括a、配置管理员向SVN服务器配置系统发布策略,该策略包含以下内容项目名称、项目 版本、项目架构和发布时间信息;b、当发布时间一到,SVN服务器会自动分析发布策略的内容,根据项目名称、项目版本、 项目架构从编译服务器配置库中查找编译服务器,向编译服务器发送系统发布指令;c、编译服务器接收到系统发布指令后,利用编译生成的二进制文件,调用版本发布程 序,生成系统镜像文件,然后将镜像文件放置到FTP服务器上特定的目录,进行发布,然后 向SVN服务器发送系统发布完成指令;d、SVN服务器接收到系统发布完成指令后,向配置管理员发送邮件,通知配置管理员, 结束该发布过程。
5.一种操作系统软件包自动更新的方法,其特征在于,该方法包括A、初始化SVN服务器,在SVN服务器上创建用于管理所有项目的软件包的软件库;B、开发人员在自己的机器上开发完成一个软件包后,将该软件包的源代码上传到软件 库中,同时向软件包配置文件中增加一条记录信息;C、SVN服务器启动更新检测程序,检测软件库的更新情况,根据更新软件包名称从软件 包配置文件中查找软件包所属的项目名称、项目版本、项目架构信息,从编译服务器配置库 中查找相应的编译服务器,然后向编译服务器发送编译指令;D、编译服务器接收到编译指令后,对编译指令进行解析,包括编译指令中的项目名称、 项目版本、项目架构的信息;E、当编译结束后,编译服务器会自动分析编译过程中生成的日志信息,分析软件包编 译是否成功;如果编译失败,则分析得出失败的原因;如果编译成功,则将编译生成的二进 制文件存放到编译服务器的特定目录中;该编译服务器将日志分析结果作为反馈信息,并 向SVN服务器发送编译完成指令;F、SVN服务器解析收到的编译完成指令,分析编译结果;在接收到所有编译服务器发 送来的编译完成指令后,SVN服务器对编译结果进行汇总,向配置管理员和开发人员发送邮 件,告知本次软件包更新的结果。
6.一种利用权利要求1所述系统进行操作系统版本自动发布方法,其特征在于,该方 法包括a、制定系统发布计划,配置管理员根据各个项目的实际情况提前制定系统发布计划, 并且将发布计划注册到SVN服务器,包括项目名称、项目版本、项目架构和发布时间信息;b、在系统发布前一定时间N小时内,SVN服务器向该项目所有的开发人员发送邮件,告 知开发人员系统发布信息,提醒开发人员尽快将更新的软件包上传到SVN服务器的软件库 中;所述N为自然数;c、在系统发布前M小时,SVN服务器自动关闭这个项目的上传权限,禁止开发人员向软 件库中上传软件包;所述M为自然数,且N>M ;d、到了配置管理员制定的发布时间,SVN服务器根据发布计划的项目名称、项目版本、 项目架构从编译服务器配置库中查找发布服务器,然后向发布服务器下达发布指令;该发 布服务器接收到发布指令后,调用系统发布程序,生成系统镜像文件,上传到FTP服务器指 定目录,完成发布工作,并且向SVN服务器发送发布完成指令;e、SVN服务器接收到发布完成指令后,发布工作结束,向配置管理员发送邮件,邮件内 容包括发布完成的时间,发布结果,镜像文件的名称和在FTP服务器上的存放位置,系统 发布时的日志文件信息。
7.根据权利要求6所述系统的版本自动发布方法,其特征在于,该方法包括步骤e进 一步包括SVN服务器开启所述项目的上传权限,并向开发人员发送邮件,说明发布工作结 束ο
8.一种利用权利要求1所述系统的SVN服务器进行软件包更新的方法,其特征在于,该 方法包括A、开发人员将软件包的源代码上传到SVN服务器;B、SVN服务器检测开发人员上传的源代码,并检查以下信息开发人员是否有权限更 新该软件包、开发人员提交源代码时是否填写了日志信息、开发人员填写的项目名称、项目 架构是否正确;若检查没有通过,则SVN服务器禁止源代码上传到软件库中,若检查通过, SVN服务器将软件包的源代码上传到软件库中;C、SVN服务器检测软件库的更新情况,从软件包配置文件中查找更新软件包的信息,包 括项目名称、项目版本、项目架构;D、SVN服务器得到软件包的项目名称、项目版本、项目架构信息后,根据项目名称、项目 版本和项目架构去编译服务器配置库中查找编译服务器的IP地址,以确定这个软件包到底应该在哪台编译服务器上进行编译;E、确定编译服务器的IP地址后SVN服务器向编译服务器发送编译指令。
全文摘要
本发明公开一种操作系统版本自动发布和软件包自动更新的系统及方法,该系统主要包括SVN服务器、编译服务器、FTP服务器、工作客户端及配置管理终端;采用该系统提供的版本自动发布和软件包自动更新的方法,能够实现在一台SVN服务器中实现存放多个项目的软件包,并且可以自动检测到软件包的更新情况,自动将软件包下发到对应的编译服务器进行编译,并将编译结果及时反馈给配置管理员和开发人员,以及配置管理员可以提前制定系统发布计划,实现系统的定时自动发布。采用本发明能够显著减少配置管理员的工作量,大大提高软件包编译效率,明显降低软件包管理和系统发布过程中发生人为错误的概率。
文档编号H04L29/08GK102035892SQ201010602478
公开日2011年4月27日 申请日期2010年12月23日 优先权日2010年12月23日
发明者何小囡, 年艳川, 张静, 王宇冬, 王慧 申请人:中科方德软件有限公司