openSUSE:Libzypp 介绍

跳转到:导航搜索

Libzypp

提供了以下程序用于软件包管理

  • YOU - YaST 在线更新(仅更新)
  • yast 软件包管理器(“yast sw_single”)用于安装和删除(但不更新)
  • apt-rpm 作为 yast 和 YOU 的替代方案

随着 ,SUSE 集成了一个新的软件包管理器解析器库,名为 "libzypp"。

libzypp 是 SUSE 的 yast2 软件包管理器和 Ximian 的 libredcarpet 的集成。在 Novell,迄今为止使用了两种解决方案 - Red Carpet 和 YaST 软件包管理器 - 并决定以最佳实践的方式将两者合并。

SUSE Linux 的优势是

  • 比以前更好的解析器
  • 更多关于为什么安装软件包或找不到解决方案的信息
  • 更好地集成多年来添加到我们软件包管理器中的所有功能。
  • 命令行界面(“rug”)
  • 统一处理软件包 *和* 补丁
  • 更新软件包的依赖项处理
  • 更好地处理选择(我们现在称之为“模式”)
  • 远程管理(尚未在 SUSE Linux 10.1 中)
  • 安装期间的附加仓库
  • 更灵活地处理不同的仓库,例如,可以为每个仓库拥有额外的模式。
  • 基于语言(字体、翻译等)或硬件(驱动程序)的附加依赖项

Libzypp 的历史

  • 因此,在连续收购 之后, 决定将 RedCarpet 和 YaST 软件包管理器合并到其 Zen 管理网络中,该网络旨在管理大型异构环境。虽然生成的管理器 ZYpp 在具有 ZMD 守护进程的公司产品上运行良好,但它不太适合公共分发,导致 openSUSE 10.1 版本发布了一个软件包系统无法按预期工作。
  • openSUSE 版本修复了先前版本的一些缺陷,使用了修订后的 libzypp v2。然后,ZMD 最终从 版本中永久删除,并仅保留给公司企业产品。虽然 zypp v3 为 openSUSE 提供了一个相对良好的软件包管理器,等同于其他现有的软件包管理系统,但它受到其实现中一些缺陷的限制,从而限制了其性能。
  • 像 OPIUM(最佳软件包安装/卸载管理器)[1a] 和 Mancoosi[1c] 这样的项目试图使用 SAT 求解器(布尔可满足性问题)来修复依赖项解决问题。传统的求解器,如 Apt[1a][1b],有时会显示不可接受的缺陷,SAT 求解器,从复杂性理论[2]来看,基本上与它们的工作方式不同(有关 Apt 和 Aptitude 算法的运行方式,请参见 [3])。决定将 SAT 算法集成到 zypp 堆栈中,使用的求解器算法基于流行的 minisat 求解器。
  • 经过几个月的努力,结果更令人鼓舞:zypp v4 与 YUM 和 Smart 在同一台机器上的基准测试结果不言而喻(参见 [5] 查看一些图表),并且 Smart “用例” [6] 得到妥善处理。这个新 zypp 的另一个令人惊讶的功能是它能够调用推荐的物理软件包。需要安装新的摄像头吗?只需连接硬件并使用“zypper update”命令行(或通过 YaST),zypp 将尝试从在线仓库获取好的驱动程序。
  • Zypp 将成为 openSUSE 发行版的独立项目:因此,它具有一定程度的互操作性 [7] 与事实上的标准 yum,并且可以用于其他发行版:图形用户界面实现了一个完整的 zypp 后端。利用 openSUSE 构建服务的灵活性,ZYpp 软件包管理器中的软件包将可用于其他发行版,如 Fedora 和 Mandriva Linux [8]。

常见问题解答

1 - 为什么您要从头开始编写一个新库,而不是使用任何现有的解决方案?为什么不引用 Apt,它是最受欢迎的解决方案?

在发布 SUSE Linux 10.0 之后,我们希望将现有的软件包管理基础设施(基于 RPM)提升到一个新的水平,并添加或显著改进对以下的支持:

  • 多个软件仓库,共享 YOU 和标准仓库
  • 附加产品处理
  • 丰富的本地客户端(zypper、updater applet)
  • 集中管理界面
  • 模式、补丁
  • C++ API
  • 仓库签名

回顾 2005 年可用的开源工具及其成熟度,很明显,没有一个能够满足上述要求并与 Ximian 和 SUSE 开发的 Linux 管理软件无缝协作,两者现在都是 Novell。

因此,我们决定从现有片段中获取最佳想法,但致力于新的实现以满足要求。


2 - libzypp 在功能方面与其他工具相比如何?

这里是 libzypp 特性的列表。另请参见 ,了解基于 RPM 的不同软件管理解决方案中可用的功能。


3 - libzypp 的性能与其他类似工具相比如何?

libzypp 的第一个版本确实相当慢,因为它是一个从头开始编写的新库。我们不断改进性能,基于从发布的发行版和用户反馈中获得的经验。今天,随着 satsolver 库的包含,libzypp 是可用的最快的软件包管理器之一。

另请参见


4 - 关于 libzypp 和相关技术的标准化和上游使用情况如何?

我们正在积极努力推动技术,例如 rpm 对附加依赖类型的支持,或我们对 rpm-md 仓库的增强上游。推动 SUSE 特定的功能上游没有意义。我们还在积极参与 LSB 包装和 rpm5 项目,以确保 SUSE 特定的功能将在未来变得更加普遍。


参考资料


参见


外部链接