面向操作系统版本构建的软件包依赖关系分析*
2021-11-22马俊,周凯,任怡,朱浩,秦莹,王静
计算机工程与科学 2021年11期
马 俊,周 凯,任 怡,朱 浩,秦 莹,王 静
(国防科技大学计算机学院, 湖南 长沙 410073)
1 引言
软件发行管理(Software Release Management)在大型软件工程开发中的作用越来越重要[1],同时由于大型软件组件构建和相互关系复杂,经常会由于某个组件的更新升级导致整个软件系统失效或者崩溃[2]。操作系统作为最复杂的基础软件系统之一,其版本构建和发行管理中面临的这类问题更加突出。
近年来,Linux类操作系统在服务器和桌面领域愈发普及与流行,系统复杂性也随着软件规模的增加而剧增。至2020年,仅内核代码已经超过2 500万行,包含超过61 000个文件[3],而一个典型的Ubuntu发行版本对应软件仓库中开源软件或组件的数量也超过3万个,二进制软件包数量超过6万个。为了便于组织管理和维护,Linux系统中的应用软件以特定格式的软件包进行组织,通过软件包的各种属性描述软件包之间的相互关系,并提供管理工具(如Ubuntu的DPKG和APT工具、CentOS的RPM和YUM工具等)便于用户安装、升级与卸载软件。在软件包的相互关系中,依赖关系主要体现了一个软件的安装和执行依赖于另一个软件提供的运行库或服务接口等。操作系统在进行发行版本构建时,除了依据必要功能选择核心组件的软件包,还必须将组件依赖的软件包集成到版本中,提供一个依赖关系自洽的闭包。因此,依赖关系对于操作系统版本构建和系统的定制裁剪至关重要。
从开源社区中Linux系列操作系统发行版本的组成来看,不同使用场景与功能特性需求的差异,会导致选取软件包的范围和数量不同。……
登录APP查看全文
