一种unix操作系统中逆向查找包被依赖的方法技术方案

技术编号:3960781 阅读:404 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种unix操作系统中逆向查找包被依赖的方法,在包仓库IPS的基础上,查找同一个版本中所有包的相互依赖关系,根据包的依赖关系,有效的对系统进行轻松的定制化工作,整个包的逆向查找包括:1)包仓库技术IPS,2)包组织技术,3)逆向查找包的方法,其中:1)包仓库技术IPS,是包管理技术中的重要部分,它将所有的功能包按照一定的规则组织起来,按照发布版本,组成一个集合;发布到网上服务器,供所有的开发者和应用者使用,客户端装有相应的客户端工具,用户通过网络访问IPS,进行一些操作,包括包的安装,卸载,升级,查看包的描述特性,特性包含:包安装到哪个目录,安装后的名称,需要系统的哪些依赖文件。

【技术实现步骤摘要】

本专利技术是一种在类unix操作系统里面查找包和包相互依赖,查找包被依赖的技 术。具体描述为在系统的包库环境下,根据包的特殊描述文件,分析包的组织结构,在包库 组成的有限图集里按照一定的算法查找包被依赖的方法。
技术介绍
随着solaris系统的普及程度不断加深,使用和开发solaris的群体越来越大, 应用范围和研究也多元化。系统开发和使用过程中经常会遇到一些情况1)用户删除了某 包之后,导致其他的功能不能运行,提示系统缺少某个库文件或者连接文件,但是删除它之 前,又不能清晰的找出哪些功能包依赖它;2)系统过于庞大,系统运行相当耗费软硬件资 源,某方面的应用,系统性能不佳;3)对于一个开发者或者普通使用者,过于复杂的开发环 境或者很多娱乐等功能都是不需要的;4)从事系统裁减方面的开发者对包的多少和大小 会非常在意,他们非常关心的是,一个不需要的包能否最终从操作系统中删除;5)开发过 程中,新安装的某个关键的脚本程序不能运行。这种情况不管是lirmx的系统还是unix系 统都存在。Linux下的rpm工具,只能知道某个文件包依赖其他哪些包;在删除包的时候会不 断提示它被其他包依赖。也就是A包被B、C包文件依赖,如果需要删除应用包A,需要首先 删除B、C之后再删除A包。Unix下的pkg工具也是如此。两种包管理工具都面临同一个问 题删除这个包的时候,可能会提示还有其他的包依赖这个包。不断手动删除依赖它的包。 非常耗费精力,效率非常低,而且不能保证系统删除之后,功能的完整性。本专利通过系统的包库和包本身的基本特性,可以理顺系统中包的相互关系,可 以查看包在系统中被其他哪些包所依赖。方便用户和开发者对包有一个整理把握,轻松的 定制化系统。
技术实现思路
本专利技术是利用系统上现有的包库基础,通过对系统中包的组织结构分析,在有限 图集的基础上循环遍历所有包。理顺包和包之间的关系,查找到包之间的系统依赖和被依 赖的关系。在包仓库IPS的基础上,查找同一个版本中所有包的相互依赖关系,根据包的 依赖关系,有效的对系统进行轻松的定制化工作,整个包的逆向查找包括1)包仓库技术 IPS, 2)包组织技术,3)逆向查找包的方法,其中1)包仓库技术IPS,是包管理技术中的重要部分,它将所有的功能包按照一定的 规则组织起来,按照发布版本,组成一个集合;发布到网上服务器,供所有的开发者和应用 者使用,客户端装有相应的客户端工具,用户通过网络访问IPS,进行一些操作,包括包的安 装,卸载,升级,查看包的描述特性,特性包含包安装到哪个目录,安装后的名称,需要系统 的哪些依赖文件;2)包组织技术,opensolaris下包是以文件夹的方式组织起来的所有的功能文件和描述文件都在同一个文件目录下,文件目录名称也就是包的名称,这是包组织结构的 特点,文件夹下面包含包功能的二进制文件,源码文件,描述文件信息;3)逆向查找方法,利用包的组织结构特殊性,并且利用包在一个版本的IPS系统中的集合性,找到系统中的功能包被其他哪些包依赖,包的描述文件中的关键描述词记录 着包的依赖特性,通过逆向遍历描述集,记录包的依赖关系。具体步骤内容如下1)包在系统框架下组成一个有限集合,集合中的元素有的是单个个体,有的是一 个有限的单向连通图集,通过这些图集可达性,找到集合里面所有的包相互关系;2)包是以文件夹的方式组织的,文件夹名称就是包名,文件夹下面有包的功能文 件,这些文件是以它本身的哈希值作为文件名,鉴于哈希值的唯一性特点,以哈希值命名的 文件在整个系统中唯一性,最重要的一个文件就是manifest文件,它的功能类似于linux 系统下rpm包组织方式的.SPEC文件,Manifest除了负责包下各个文件的安装路径,权限, 安装后名称,包功能描述外,还有一个重要的作用就是,它记录安装这个包所需要的依赖 包,一两个或十几个,也就是说,安装这个包,包管理工具自动会检测系统是否已经安装了 这些包文件,有,则系统会正常的安装这个包,没有,则首先安装这些包;3)根据包描述文件manifest中的记录,逆向查找包的过程主要为a)先将所有包的manifest存放在一个以包名为目录的文件夹下面;b)所有这些包又放在同一个父目录下,这样方便后期查找;c)通过关键词查找每个包A下的依赖包,将依赖包记录在一个临时文件中,临时 文件中每一行代表一个依赖包,依次表示为Bl,B2, B3……;d)读取这个临时文件每一行,即包Bl……,将原始包名A输入到以这个包B1为文 件名的文件中保存起来,或者使用数据库记录;e)遍历整个包库集,用F_B1表示保存的文件,这样?_81文件中每一行A1,A2…都 是遍历过程中,A1依赖B1所记录进来的,保证整个系统中不会遗漏包和多包现象;f)依赖包中选择任意变量A1,遍历数据库所有的文件,读取A1每一行作为一个变 量B1,再打开这个变量B1的文件,读取该文件B1的所有信息,并记录到原始变量A1中,这 样能保证所有的文件都查询到所有的依赖,而不是只有一级依赖。opensolaris系统下采用PKG的管理包,它的包仓库称为IPS,它集合了所有的 opensolaris可能用到的功能包,有些是必须的,有些是核心的,有些是可选的,在IPS里 面,所有的包按照一定的格式陈列在服务器上,用户和开发者访问opensolaris的官方 IPS,或在本地或者局域网做一个官方的镜像,Linux下的包仓库采用的是yum-update或者 APT技术,基本功能跟IPS相似。4.根据权利要求1所述的方法,其特征在于每个功能包的所有文件都在同一个文 件夹下面,不会有第二级目录,这样组织便于开发者和用户迅速查找,每个功能包下的一个 特殊文件都记录了本功能包依赖系统中的零个或者1个以上的其他功能包,这样,在整个 IPS包库框架下,所有的包组成一个有限路径的可连通的图集,也就是所有的包的依赖性都 是可查找的,LINUX下的.Spec文件具有同样的功能。包在一个图集的环境下找到所有包的依赖和被依赖的关系,对包进行删除的时 候,能够轻松的知道删除它对系统功能的影响,很快捷的定制化操作系统。本专利技术的优异效果是主要适用于opensolaris包管理,对Iinux下的rpm包管 理,ubuntu下的apt包管理也同样适用。不管是Iinux的rpm、apt管理工具还是unix下的pkg包管理工具,都有类似的包 管理工具和包库技术。采用类似的方法,可以使得系统的使用更加方便。附图说明附图1包图集的逻辑关系和包依赖关系;附图2包文件的组织结构;附图3查找包被依赖的流程图。具体实施例方式下面参照附图1,2和3,对本专利技术的内容以一个具体实例来描述实现这一体系结 构的过程。正如专利技术里面所描述的一样,操作系统中,包管理工具的数据库记录着所有包, 它们被集合在一个特定的地方,如图1所示。每个包本身是由一定数量的包文件组成,他们 被记录在一个特定的描述文件manifest中,manifest也在当前包目录下。一般的包的组 织结构如图2所示。各种包的组织根据包的功能不一样,依赖关系也不一样。有的包不被其他包依赖, 也不依赖其他包,如图1中的P包;有的包除了被其他包依赖外,还依赖另外的其他包,如图 1中的B、C包;本文档来自技高网
...

【技术保护点】
一种unix操作系统中逆向查找包被依赖的方法,其特征在于,在包仓库IPS的基础上,查找同一个版本中所有包的相互依赖关系,根据包的依赖关系,有效的对系统进行轻松的定制化工作,整个包的逆向查找包括:1)包仓库技术IPS,2)包组织技术,3)逆向查找包的方法,其中:1)包仓库技术IPS,是包管理技术中的重要部分,它将所有的功能包按照一定的规则组织起来,按照发布版本,组成一个集合;发布到网上服务器,供所有的开发者和应用者使用,客户端装有相应的客户端工具,用户通过网络访问IPS,进行一些操作,包括包的安装,卸载,升级,查看包的描述特性,特性包含:包安装到哪个目录,安装后的名称,需要系统的哪些依赖文件;2)包组织技术,opensolaris下包是以文件夹的方式组织起来的:所有的功能文件和描述文件都在同一个文件目录下,文件目录名称也就是包的名称,这是包组织结构的特点,文件夹下面包含包功能的二进制文件,源码文件,描述文件信息;3)逆向查找方法,利用包的组织结构特殊性,并且利用包在一个版本的IPS系统中的集合性,找到系统中的功能包被其他哪些包依赖,包的描述文件中的关键描述词记录着包的依赖特性,通过逆向遍历描述集,记录包的依赖关系。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李开君
申请(专利权)人:山东高效能服务器和存储研究院
类型:发明
国别省市:88[中国|济南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1