World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0017757819
Reproduction Date:

Title: Zypper  
Author: World Heritage Encyclopedia
Language: English
Subject: SUSE Linux Enterprise Desktop, Comparison of Linux distributions, OpenSUSE, SUSE Linux Enterprise Server, Metalink, RPM Package Manager
Publisher: World Heritage Encyclopedia


Stable release 11.5.0 / May 4, 2012; 2 years ago (2012-05-04)
Written in C++
Operating system Linux
Type Package management system
License GNU General Public License

ZYpp (or libzypp) is a package management engine that powers Linux applications like YaST, Zypper and the openSUSE/SUSE Linux Enterprise implementation of PackageKit.[1] Unlike other common package managers, it provides a powerful satisfiability solver to compute package dependencies and a convenient package management API.[2] It is an open source and free software project sponsored by Novell and licensed under the terms of the GNU General Public License v2 or later.

Zypper is the native command-line interface of the ZYpp package manager for installing, removing, updating and querying software packages of local or remote (networked) media. Its graphical equivalent is the YaST package manager module. It has been used in openSUSE since version 10.2 beta1. In openSUSE 11.1, Zypper reached version 1.0. On June 2, 2009, Ark Linux announced that it has completed its review of dependency solvers and has chosen ZYpp and its tools to replace the aging apt-rpm,[3] as the first distribution to do so. Zypper is also assimilated in the MeeGo, Sailfish OS and Tizen mobile Linux distributions.



Following its consecutive acquisitions of Ximian and SuSE GmbH in 2003, Novell decided to merge both package management systems YaST package manager and Red Carpet in a best of breed approach, as the two solutions so far were used at Novell. Looking at the existing open source tools and their maturity available back in 2005, none of those fulfilled the requirements and were able to work smoothly with the existing Linux management infrastructure software developed by Ximian and SUSE, so it was decided to get the best ideas from existing pieces and to work on a new implementation. Libzypp, the resulting library, was aimed to be the software management engine of the SUSE distributions and the Linux Management component of the ZENworks Management suite.

The early days

The Libzypp's solver was a port from the red carpet solver, which was written to update packages in an already installed system. Using it for the complete installation process brought it to its limits, and adding extensions such as support for weak dependencies and patches made it fragile and unpredictable.[4] Although this first version of ZYpp's solver worked satisfactorily on the company enterprise products with the coupled ZMD daemon, it led to an openSUSE 10.1 release which came out in May 2006 with a system package not working as expected. In December 2006, the openSUSE 10.2 release corrected some defects of the previous release, using the revisited ZYpp v2. ZMD was subsequently removed from the 10.3 release and reserved only for the company Enterprise products. While ZYpp v3 provided openSUSE with a relatively good package manager, equivalent to other existing packages management systems, it suffered from some flaws in its implementation which greatly limited its speed performance.

SAT solver integration

An area where libzypp needed significant improvement was the speed of the dependency solver.

Projects like OPIUM (Optimal Package Install/Uninstall Manager)[5][6] and MANCOOSI[7] were trying to fix dependency solving issues with a SAT solver. Traditional solvers like Apt sometimes show unacceptable deficiencies. SAT solvers, based on computational complexity theory, work differently from the usual tools such as Apt.[8] It was decided to integrate SAT algorithms into the ZYpp stack; the solver algorithms used were based on the popular minisat solver.[9] The SAT solver implementation as it appears in openSUSE 11.0 is based on two major, but independent, blocks:

  • Using a data dictionary approach to store and retrieve package and dependency information. A new solv format was created, which stores a repository as a string dictionary, a relation dictionary and then all package dependencies. Reading and merging multiple solv repositories takes just some milliseconds.
  • Using satisfiability for computing package dependencies. The Boolean satisfiability problem is a well-researched problem with many exemplar solvers available; it is very fast, as package solving complexity is very low compared to other areas where SAT solvers are used. In addition, it does not require complex algorithms and it can provide understandable suggestions by calculating proof of why a problem is unsolvable.

After several months of work, the benchmark results of this fourth ZYpp version integrated with the SAT solver are more than encouraging, moving YaST and Zypper ahead of other rpm-based package managers in terms of speed and footprint.[10][11]

See also

Free software portal


External links

  • ZYpp official website
  • Sneak peeks at openSUSE new package management
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.