ZYpp
来自维基百科,自由的百科全书
ZYpp (或称libzypp) 是一个软件包管理引擎,通常在openSUSE/SUSE Linux Enterprise以YaST、Zypper或PackageKit为前端使用[1]。它提供一个强力的可满足性求解器来计算软件包相依性,也提供了一组方便的软件包管理API[2]。它是一个由Novell所赞助的开放源代码且为自由软件的项目,采用GNU通用公共许可证第二版或更新许可。
![]() | |
当前版本 | 17.25.8(2021年2月24日 | )
---|---|
源代码库 | |
编程语言 | C++ |
操作系统 | Linux |
类型 | 软件包管理系统 |
许可协议 | GNU通用公共许可证 |
网站 | The LibZYpp Portal |
Zypper为ZYpp软件包管理器原生的命令行界面前端,可用以安装、移除、升级及查询本机或远程(通常为网络)媒体的软件包。它的图形等价接口为YaST软件包管理器模块。它在openSUSE上于版本10.2 beta1开始使用。在openSUSE 11.1上,Zypper发布了1.0版。2009年6月2日,Ark Linux宣布其已经完成对其相依性求解器的审阅,并选择ZYpp及其前端接口来取代老化的apt-rpm[3],并且是第一个这么做的Linux发行版。Zypper也被MeeGo,Sailfish OS及Tizen等移动操作系统采用。
openSUSE的开放构建服务亦提供一些openSUSE官方所没有的软件。
历史
在2003年连续收购了Ximian公司[4]及SUSE公司[5]后,Novell决定要合并YaST及Red Carpet两个软件包管理器。在2005年,观察了其他的开源工具在当时的成熟度后,Novell公司觉得都不足以符合他们想要可以与已有的由Ximian公司及SUSE公司开发的Linux管理系统一起运作的要求,所以他们决定开发一个新的软件包管理器。Libzypp就是最后开发出来的函数库,目标是成为SUSE发行版的软件管理引擎,以及Novell ZENworks套装的Linux管理组件。
Libzypp的求解器是Red Carpet求解器的移植,其被编写用来在安装好的系统中升级软件包[6]。虽然第一版ZYpp的求解器与ZMD守护进程在企业产品上运行的很好,但它导致了2006年5月发布的openSUSE 10.1有系统软件包无法运作。2006年12月发布的openSUSE 10.2修正了先前版本的一些问题,并将ZYpp升级至第二版。ZMD则于10.3版中移除,只在企业版产品中保留。虽然在openSUSE中的ZYpp第三版是相对比较好的软件包管理器,但与其他软件包管理系统而言,它存在一些缺陷,从而限制了它的速度表现。
libzypp其中一个需要改进的地方是相依性求解器的速度。
像OPIUM项目[7][8]及MANCOOSI[9]这些尝试修复SAT求解器的一个相依性求解问题的项目。像是APT有时可能会出现一些无法接受的缺陷。基于计算复杂性理论的SAT求解器,与传统求解器,如APT的运作方式不同[10]。它决定将SAT算法集成到ZYpp堆栈中;其求解器是基于minisat求解器[11]。 在openSUSE 11.0中的SAT求解器是基于两个主要且独立的区块:
- 使用数据字典来存储及检查软件包的相依性信息。新的求解格式被建立,用来存储包库作为字符串字典,关系字典以及所有软件包的相依性。读取及合并多个求解库只需要很短的时间。
- 使用可满足性来计算软件包相依性。布尔可满足性问题提供许多示例求解器,并已经过长久研究;它相当快,因为相较其他使用SAT求解器的领域来说,软件包相依性的复杂度较低。此外,它不需要复杂的算法,且在计算无法解决的问题时可以提供可理解的建议。
经过几个月的工作,集成了SAT求解器的第四版ZYpp在基准测试上获取了不错的成绩,让YaST及Zypper比其他基于RPM的软件包管理器相比起来有较佳的速度及占用空间[12][13]。
参见
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.