Fact-checked by Grok 2 weeks ago

ZYpp

ZYpp, commonly referred to as libzypp, is a C++ library that serves as the core engine for package management in distributions, particularly and (SLE). It powers key applications such as the command-line tool Zypper, the graphical system configuration tool YaST, and the openSUSE/SLE implementation of PackageKit, enabling operations like software , updates, , and handling. Developed since 2000, ZYpp originated from efforts by Ximian, Inc., and was subsequently maintained and advanced by Products GmbH, with its integration into beginning prominently with version 10.1 in 2006. The library is built atop the libsolv SAT (Boolean ) solver, which provides a highly efficient mechanism for resolving complex package dependencies by modeling them as satisfiability problems, outperforming traditional approaches in speed and accuracy for large repositories. Key features of ZYpp include support for multiple repository metadata formats (such as rpm-md and YaST2), signed repositories for security, media abstraction for accessing local files, HTTP/FTP, ISO images, and NFS, as well as delta RPM calculations for efficient updates and transaction commits via the RPM backend. It also facilitates advanced capabilities like pattern-based installations, patch management for security updates, product-level installations, and support for formats (as of July 2025), making it suitable for both individual users and enterprise environments. Licensed under the version 2 or later—with a special exception for linking with —ZYpp emphasizes open-source principles while ensuring compatibility with secure protocols. In practice, ZYpp's abstracts low-level details, allowing frontend tools to focus on user interaction while the library handles the underlying logic for querying repositories, computing installation orders, and managing media changes during operations. Its ongoing development, hosted on with contributions from over 120 developers, continues to incorporate enhancements like parallel downloads as of March 2025 in recent versions, reducing update times by up to 50% in benchmarks. This robust foundation has made ZYpp a cornerstone of SUSE's ecosystem, influencing package management in other distributions through ports like Fedora's libzypp package.

Overview

Definition and Role

ZYpp, also known as libzypp, is a C++ library that serves as the backend engine for package management in and distributions. Its primary role involves handling the installation, updates, removal, and querying of RPM packages, along with repository management and dependency solving. This functionality enables efficient software management by providing APIs for repository access, dependency resolution using a integration, and transaction commits to RPM targets. Unlike user-facing tools, ZYpp operates as the underlying engine, powering applications such as YaST and Zypper without direct user interaction. It supports features like signed repositories, media abstraction for various protocols, and browsing of available and installed software, ensuring robust and secure package operations across SUSE-based systems.

Key Features

ZYpp employs a custom "solv" binary format for repository metadata, which stores package and dependency information using a dictionary-based approach to enable fast loading, querying, and minimal memory usage. This format converts raw metadata into an efficient structure during repository refresh, facilitating rapid access for dependency resolution and package management operations. The supports management of multiple repositories through a abstraction layer that handles diverse access methods, including local files, HTTP, FTP, ISO images, and NFS. Automatic repository refresh is integrated, along with GPG signature verification to ensure the authenticity of from signed repositories. ZYpp performs transaction-based operations for package , updates, and removals, committing changes atomically to the RPM target while supporting features like delta RPM calculation, handling, and optimized installation sequencing. Multilingual support is provided through translated texts embedded in solv files and locale-aware handling, allowing package descriptions and messages to adapt to the system language. Extensibility is achieved via a plugin system that allows external scripts in any language to hook into core functionality without modifying the library code, including custom URL resolvers for media handlers and service plugins for repository management. ZYpp is free and open-source software, licensed under the GNU General Public License version 2 or later, with an exception for OpenSSL linking.

History

Origins and Early Development

ZYpp, also known as libzypp, was developed by the project in collaboration with to serve as a modern package management library for RPM-based distributions, particularly within the SUSE Linux ecosystem. Following 's acquisitions of Ximian and SUSE GmbH in 2003, the project sought to consolidate disparate package management tools, including the YaST backend and Ximian's (which powered the rug frontend), into a unified solution. This initiative addressed key limitations in existing open-source alternatives like rug and , which struggled with efficient dependency resolution, repository management, and integration into enterprise-level Linux infrastructures. The primary motivation was to create a robust, performant library that could handle complex RPM operations while supporting both command-line and graphical interfaces seamlessly. Development began in earnest in as a prototype rewrite of the YaST backend, aiming to leverage the strengths of prior systems while overcoming their shortcomings in speed and handling. The first commits to the libzypp codebase occurred in late , marking the start of active under the project's open development model. Initial efforts focused on core functionalities such as package installation, removal, and querying, without incorporating advanced solving algorithms at the outset. This foundational work enabled libzypp to replace older backends like and in environments, providing a more efficient foundation for RPM-based systems. Libzypp made its debut integration in SUSE Linux 10.1, released on May 11, 2006, where it powered initial package management tasks and demonstrated improved performance over predecessors. By December 2006, with the release of 10.2 on December 7, libzypp reached version 2.0, incorporating refinements to basic operations and early fixes for identified issues. This version emphasized a clean C++ and support for multiple repositories, setting the stage for broader adoption while prioritizing conceptual simplicity in package handling.

Major Milestones

A pivotal in ZYpp's evolution occurred in 2008 with the release of version 4.0, integrated into 11.0, which introduced the SAT solver based on libsolv for handling Boolean satisfiability in complex dependency scenarios. This enhancement significantly improved dependency resolution speed and accuracy, replacing earlier mechanisms and enabling more robust package management. During the 2010s, ZYpp expanded to support mobile platforms including (2010–2011) and later (2012 onward), adapting its library for and device-oriented environments. Concurrently, improvements to the solv format optimized repository storage and querying efficiency, reducing file sizes and accelerating metadata processing through advanced dictionary-based structures. Key version releases marked further advancements: version 10 in 2012 enhanced plugin support, allowing greater extensibility for custom hooks and integrations without core modifications. The version 16 series, first released in 2017, incorporated enhanced features such as improved verification of and mitigation of vulnerabilities in dependency solving in updates including in 2020. Development progressed to version 17.37.18 on September 22, 2025, focusing on stability and compatibility refinements. Recent developments emphasize ongoing maintenance via the official , exemplified by the Zypper 1.14.94 release on September 23, 2025, which included bug fixes for handling and integration stability. This front-end update complements ZYpp's backend, including brief adoption in tools like PackageKit for broader ecosystem compatibility.

Architecture

Core Components

libzypp serves as the central C++ library in the ZYpp system, offering a comprehensive for handling package objects, accessing repositories, and managing transactions. It abstracts the complexities of package management, enabling applications to perform operations such as installing, updating, and removing software while ensuring consistency and system integrity. This library integrates with various metadata formats and provides a unified interface for software management tasks across and distributions. The handler component facilitates access to installation from diverse sources, including local filesystems, HTTP, FTP, CD/DVD drives, and other protocols like NFS or ISO images. It employs an through classes such as MediaHandler and MediaManager to manage attachment, retrieval, and tracking during downloads or mounts. For instance, MediaCurl handles network-based access with support for and configurations, ensuring reliable transfer with error recovery mechanisms. In 2025, libzypp introduced a new media backend supporting parallel package downloads, which became the default and can reduce fetch times significantly. This modular design allows seamless switching between types without altering core application logic. ZYpp's plugin architecture enables extensibility by allowing external programs to hook into key operations without modifying the core codebase. Plugins are external scripts or binaries placed in directories like /usr/lib/zypp/plugins/, supporting both stateless (stdin/stdout) and stateful (via STOMP protocol) interactions for tasks such as custom URL resolution, repository metadata verification, or post-commit actions. This design accommodates vendor-specific extensions, like applying patches during transactions or integrating third-party dependency resolvers, and can be implemented in any programming language using helpers like zypp-plugin-python. The database backend in libzypp manages the local package database by interfacing directly with the RPM database (rpmdb) to track installed packages, their versions, and dependencies. It provides query and update capabilities through abstractions like the resolver pool, maintaining an efficient, structured representation of the system's software state without relying on separate storage like . Repositories, in contrast, utilize the solv format for storage, as detailed in key features. Error handling and in libzypp are integrated through dedicated mechanisms that support transaction on failures and detailed diagnostic output. The system, configurable via environment variables like ZYPP_LOGFILE and ZYPP_FULLLOG, outputs messages to files or stderr with levels from debug to error, aiding in via classes like LineWriter. This ensures robust , such as aborting incomplete commits and preserving system consistency during operations.

Dependency Resolution

ZYpp employs a Boolean satisfiability (SAT) solver to model and resolve package dependencies as logical clauses, enabling the computation of conflict-free installation sets. Dependencies such as , conflicts, and obsoletes are expressed using literals where a positive literal (A) indicates a package is installed and a negative literal (-A) indicates it is not; for instance, a requirement for package A to have at least one of B1, B2, or B3 is modeled as the clause (-A ∨ B1 ∨ B2 ∨ B3). Conflicts are represented as binary clauses like (-A ∨ -B), ensuring , while obsoletes are treated similarly to conflicts. The dependency problem is formulated by translating these relations into (CNF), a conjunction of disjunctive clauses suitable for input, to find an assignment of truth values that satisfies all clauses while minimizing changes to the system. requests, such as installing or removing packages, generate unary clauses like (A) for forced installation or (-A) for , integrated into the CNF alongside repository data. The solver then seeks a minimal, conflict-free set of packages, prioritizing system stability by avoiding deinstallations or downgrades through additional policy clauses, such as (A ∨ A2 ∨ A3) to allow only upgrades for an installed package A. ZYpp supports multiple resolver modes to handle varying scenarios. The standard mode serves as the default, automatically resolving dependencies to maintain a consistent system state. In job-based mode, users specify targeted actions like installing particular packages, which generate corresponding rules in the solver queue for precise resolution. Auto-resolution mode incorporates vendor priorities, using weighted rules to prefer packages from higher-priority sources during updates or . Performance optimizations ensure efficient handling of large repositories with thousands of packages. Incremental solving via unit propagation processes clauses iteratively, setting literals to true when a clause reduces to a single option and propagating implications without restarting the entire computation. Caching mechanisms, including a watch array for tracking relevant clauses and the SOLV format for repository data, reduce redundant evaluations and enable rapid querying of available versions. For example, resolving a dependency like "package X requires libfoo >= 1.0" involves creating clauses that check available libfoo versions against the constraint; if versions 1.1 and 2.0 are present, the solver selects the highest compatible one (e.g., (-X ∨ libfoo_1.1 ∨ libfoo_2.0)) while verifying no conflicts, ultimately assigning true to the chosen version if X is installed.

Interfaces

Command-Line (Zypper)

Zypper serves as the primary command-line interface (CLI) to the ZYpp package management library, enabling users to manage software packages on SUSE Linux Enterprise and openSUSE distributions through a text-based, scriptable environment. It provides subcommands for core operations such as installing, removing, updating, and searching for packages, leveraging the underlying libzypp engine for dependency resolution and repository handling. Released alongside libzypp, Zypper emphasizes efficiency and automation, making it suitable for server environments or headless systems without graphical interfaces. Package management in Zypper revolves around straightforward subcommands that handle , removal, and updates. For , the install or in subcommand is used, as in zypper install <packagename>, which resolves and installs the specified package along with its dependencies. Removal is achieved via remove or rm, for example zypper remove <packagename>, optionally with --clean-deps to purge unneeded dependencies post-removal. Updates are managed through update or up to refresh all installed packages, patch for security and bug fixes, or dist-upgrade (alias dup) for full distribution upgrades, ensuring system consistency. Repository management allows users to add, modify, and refresh sources dynamically. The addrepo or ar subcommand adds a new with zypper addrepo <[URL](/page/URL)> <alias>, where the points to the and the alias provides a identifier. Modifications are handled by modifyrepo or mr, such as zypper modifyrepo <alias> --enable 1 to activate a repo, while refresh or ref updates from all enabled repositories with zypper refresh. Query functions facilitate package discovery and inspection without altering the system. The or subcommand displays details for a package, like zypper info <packagename>, including version, size, and dependencies. For capability-based searches, what-provides or wp identifies packages providing a specific file or feature, though it is deprecated in favor of search --provides --match-exact <capability>. Pattern searches, useful for software bundles, are performed with search --type pattern <string> or pattern-info <pattern>. Zypper supports scripting and automation through non-interactive modes and standardized exit codes. The --non-interactive flag enables batch operations without prompts, defaulting to yes for confirmations, as in zypper --non-interactive install <packagename>. codes indicate success (0), errors like unmet dependencies (100-106), or repository issues (107-110), allowing integration into shell scripts or pipelines. The latest version of Zypper, 1.14.94, was released on September 23, 2025, incorporating enhancements to parallel downloads for faster package fetching during updates. These improvements build on experimental parallel download support introduced earlier in 2025, reducing bottlenecks in metadata and file retrieval.

Graphical (YaST and Others)

YaST, or Yet another Setup Tool, served as the primary graphical front-end for ZYpp in and distributions until its deprecation in 2025. In earlier versions, its software management module enabled users to browse repositories, search for packages, and perform installations or removals through an intuitive , automatically resolving dependencies via the ZYpp backend. A key feature was support for "patterns," which are predefined groups of related packages—such as environments or tools—allowing users to install comprehensive software sets with a single selection, streamlining complex setups like base system configurations. The workflow in YaST integrated ZYpp seamlessly for backend operations, featuring step-by-step wizards that guided users through tasks like pattern-based installations or repository management, reducing the risk of configuration errors in graphical environments. For instance, the Online Update module used ZYpp to fetch and apply security patches or updates in a controlled manner, with visual progress indicators and rollback options. Historically, YaST included ncurses-based text interfaces for non-graphical sessions, but its core strength lay in the Qt-based GUI for desktop users. As of openSUSE Leap 16 (released October 2025) and Server 16, Myrlyn has replaced YaST as the primary graphical for ZYpp. Developed during Hack Week in 2024 and initially known as YQPkg, Myrlyn is a standalone Qt-based interface that provides streamlined package management, including intuitive updates, repository handling, and transaction history views. It supports patterns and integrates directly with libzypp for dependency resolution. Myrlyn is now available in Tumbleweed and Leap 16, serving as the default GUI for software management in these distributions. PackageKit provides another graphical layer atop ZYpp through its backend implementation, offering a interface that enables integration with desktop environments such as Software and Discover. This abstraction allows these tools to handle package searches, installations, and notifications uniformly across distributions, leveraging ZYpp's resolver for dependency handling without direct user interaction with low-level commands. ZYpp's adaptability extends to mobile ecosystems, where simplified modules derived from YaST have been incorporated into platforms like and , supporting RPM-based package operations in constrained environments. In , for example, ZYpp powers core package handling akin to desktop uses, enabling efficient on devices.

Integrations

In SUSE Ecosystems

In openSUSE, ZYpp serves as the foundational library powering all package management operations, enabling seamless installation, updates, and removals through front-end tools like Zypper. By default, fresh installations configure essential repositories out of the box, including the Main Repository (OSS) for open-source software and the Main Repository (Non-OSS) for proprietary components, ensuring immediate access to a comprehensive software ecosystem without manual setup. Within , ZYpp is deeply integrated for robust enterprise patching and deployment, particularly via SUSE Manager, which utilizes ZYpp through Zypper to handle package installations, upgrades, and verifications across managed clients. This setup supports Long Term Support (LTSS), allowing organizations to subscribe to extended repositories for sustained security and stability updates beyond standard lifecycles, managed directly with Zypper commands like zypper addrepo for LTSS channels. ZYpp's behavior is customized via the primary /etc/zypp/zypp.conf, which governs global parameters such as solver preferences—for instance, enabling solver.onlyRequires = true to limit installations to strictly required dependencies—and strategies to balance speed, parallelism, and delta compression for efficient repository synchronization. is bolstered by ZYpp's support for automated updates through the zypper dup command, which performs comprehensive upgrades and applies patches to maintain system integrity against vulnerabilities. In environments, operates by default, with security profiles for applications managed and enforced during package installations to confine newly installed applications and prevent unauthorized access.

Beyond Desktop Linux

ZYpp has found applications in mobile operating systems, particularly those targeting ARM-based devices. It was integrated into in 2010 as the primary package management system, enabling efficient software updates on resource-limited hardware like netbooks and smartphones. Similarly, utilizes ZYpp through its zypper command-line tool for package installation and repository management, as evidenced by official documentation referencing ZYpp history logs for updates. also incorporates ZYpp in its build and development environments, where zypper commands are used for package handling within tools like the GBS (Git Build System) for emulator and device testing. These integrations leverage ZYpp's for dependency resolution, which provides efficient performance suitable for mobile constraints without requiring heavy computational resources. In and contexts, ZYpp supports customized builds tailored for resource-constrained systems. Developers in the and communities have adapted libzypp and zypper for distributions by applying patches to address RPM integration issues and system configuration needs, allowing deployment on devices with limited storage and processing power. These adaptations often involve stripping non-essential plugins to minimize overhead, enabling ZYpp to function in environments like smart devices and industrial controllers where full desktop features are unnecessary. Experimental ports of ZYpp extend its utility beyond ecosystems to other distributions. In , libzypp and zypper are available as third-party packages through repositories and COPR builds, providing non-native for RPM-based package without replacing DNF. This allows users to experiment with ZYpp's resolver and handling capabilities in Fedora environments, though integration remains unofficial and plugin-limited. ZYpp's extensibility is enhanced by its exposure through libzypp, which includes bindings for other languages to facilitate custom tool development. For instance, bindings via the python-zypp package enable scripting of package operations, repository queries, and dependency analysis, making it accessible for automation in diverse platforms. Addressing challenges in non-desktop deployments, ZYpp versions post-2010 have incorporated optimizations to reduce , particularly for use cases. Fixes for memory leaks and efficient solver implementations in libzypp updates have lowered resource demands, supporting deployments on devices with limited while maintaining robust dependency resolution.

References

  1. [1]
    Welcome to libzypp - openSUSE I/O
    libzypp is the package management library that powers applications like YaST, zypper and the openSUSE/SLE implementation of PackageKit. What is libzypp? libzypp ...
  2. [2]
    openSUSE/libzypp: ZYpp Package Management library - GitHub
    ZYpp Package Management library. Contribute to openSUSE/libzypp development by creating an account on GitHub.Missing: manager | Show results with:manager
  3. [3]
    openSUSE:Libzypp satsolver
    Dec 24, 2015 · SAT solver library is the most powerful package dependency solver and repository storage system available for Linux. Dependency solving. Solving ...
  4. [4]
    openSUSE's Zypper Package Manager Gets an Exciting New Feature
    Mar 27, 2025 · openSUSE's Zypper package manager introduces optional parallel downloads and backend enhancements with up to 50% time savings in benchmarked ...<|control11|><|separator|>
  5. [5]
    libzypp - Fedora Packages
    libzypp is a library for package management built on top of the libsolv library. It is the foundation for the Zypper package manager.
  6. [6]
    Portal:Libzypp - openSUSE Wiki
    Mar 3, 2025 · ZYpp is a Linux software management engine that powers products like YaST and Zypper with a powerful dependency resolver and a convenient package management ...
  7. [7]
  8. [8]
    Introduction to RPM Packaging | SUSE Linux Enterprise Server 11 ...
    You can lock packages to avoid them being removed or pulled-in using zypper addlock or zypper removelock . You can also list active locks with zypper locks .<|control11|><|separator|>
  9. [9]
    Archive:Zypper manual - openSUSE Wiki
    Jul 22, 2025 · zypper is a command-line interface to ZYpp system management library (libzypp). It can be used to install, update, remove software, manage repositories, ...
  10. [10]
  11. [11]
    libzypp: Extending ZYpp: Plugins and Hooks - openSUSE I/O
    Supported plugins · Commit plugin · System plugin · Repository metadata verification plugin · Service plugins · Url Resolver plugins · Appdata refresh plugins (repo ...Missing: media | Show results with:media
  12. [12]
    openSUSE:Libzypp introduction
    Dec 24, 2015 · Then, ZMD was finally removed permanently from the 10.3 release and reserved only to the company Enterprise products.Missing: initial | Show results with:initial
  13. [13]
    Portal:Libzypp/History - openSUSE Wiki
    Oct 16, 2010 · Following its consecutive acquisitions of Ximian and SuSE GmbH in 2003, Novell decided to merge both package management systems YaST package ...
  14. [14]
    Archive:SUSE Linux 10.1 - openSUSE Wiki
    Jun 21, 2013 · On Thursday, May 11, 2006, SUSE Linux 10.1 was released. It included updates to the GNOME and KDE stacks, Beagle as a desktop search engine.
  15. [15]
    Archive:OpenSUSE 10.2
    May 31, 2018 · On Thursday, December 7, 2006 openSUSE 10.2 was released. The distribution was renamed from SUSE Linux to openSUSE to avoid confusion with the SUSE Linux ...Missing: ZYpp | Show results with:ZYpp
  16. [16]
    openSUSE:Libzypp download source
    Jul 29, 2010 · This articles covers where and how to get libzypp so you can begin hacking/editing the code. ... Version: 11.0 ZYpp 4.x / openSUSE 11.0. Version: ...
  17. [17]
    Development Release: openSUSE 11.0 Alpha 1 (DistroWatch.com ...
    The main changes against Alpha 0 are: Sat Solver integration, Michael Schröder's 'sat solver' library is now the default package solver for libzypp; heavy ...<|control11|><|separator|>
  18. [18]
    Announcing openSUSE 11.0 Beta 1
    Apr 18, 2008 · Among these is the incredibly fast package management (libzypp), KDE 3.5.9 and 4.0.3, GNOME 2.22.1, a beautiful new installer, live CDs and much ...<|control11|><|separator|>
  19. [19]
    Tizen Is Announced; MeeGo Will Transition To It - Phoronix
    Sep 28, 2011 · The MeeGo Project announced last night they will be transitioning to Tizen, a new project from the Linux Foundation and others.
  20. [20]
    how the libsolv library came into existence - Ubuntu Manpage
    Early solver experiments Having a new repository format was one big step, but the other area where libzypp needed improvement was the solver. Libzypp's solver ...
  21. [21]
    RPM Search
    Thu Jul 12 14:00:00 2012 maAATTsuse.de - filter ... - version 10.0.0 (0) Tue Sep 13 14:00:00 2011 ... - Icons for libzypp should go into desktop-data.
  22. [22]
    openSUSE:Libzypp plugins
    Oct 6, 2010 · ZYpp allows to hook and extend some functionality by adding scripts in the plugins location /usr/lib/zypp/plugins/$plugintypeMissing: custom | Show results with:custom<|separator|>
  23. [23]
    File libzypp.changes of Package libzypp.39925
    E.g. all providers of a packages requirements. - Fixed retrieval of translated texts from .solv files, provided the solv file contains them. - revision 9328 ...
  24. [24]
    Security update for libzypp SUSE-SU-2020:0023-1 - SUSE
    Announcement of Security update for libzypp. Maximize the value of open source with SUSE solution, backed by SUSE Support.
  25. [25]
    libzypp 17.37.18-2 (x86_64) - Arch Linux
    libzypp 17.37.18-2. Package Actions. Source Files / View Changes · Bug ... Build Date: 2025-10-15 12:35 UTC. Signed By: Christian Heusel. Signature Date ...
  26. [26]
  27. [27]
    zypper 1.14.94-1 (x86_64) - Arch Linux
    zypper 1.14.94-1. Package Actions. Source Files / View Changes · Bug ... Build Date: 2025-09-23 23:03 UTC. Signed By: Christian Heusel. Signature Date ...
  28. [28]
    zypper - openSUSE Software
    openSUSE Tumbleweed. official release Official. 1.14.94. Expert Download. Show experimental packages. Show community packages. zypp:Head Experimental. 1.14.94.
  29. [29]
    libzypp: zypp::media::MediaHandler Class Reference - openSUSE I/O
    Abstract base class for 'physical' MediaHandler like MediaCD, etc. Handles the requests forwarded by MediaAccess. The public interface contains nonvirtual ...
  30. [30]
    libzypp: zypp::media::MediaManager Class Reference - openSUSE I/O
    The access handler for media on CD / DVD drives. Scheme: cd: Requires a drive supporting CD media. dvd: Prefers a drive supporting DVD media. Examples: "cd ...
  31. [31]
    libzypp: zypp::media::MediaCurl Class Reference - openSUSE I/O
    Implementation class for FTP, HTTP and HTTPS MediaHandler. See also: MediaHandler. Definition at line 32 of file MediaCurl.h. Constructor & Destructor ...
  32. [32]
    Environment Variables - libzypp - openSUSE I/O
    ZYPP_CONF= <PATH> Location of the zypp.conf file. ZYPP_LOCK_TIMEOUT= <sec> If zypp is locked by another process wait this number of seconds for the lock ...Missing: binary | Show results with:binary
  33. [33]
    libzypp: zypp::log::LineWriter Struct Reference
    If you want to log the (formated) loglines by yourself, derive from this, and overload writeOut . Expect formated_r to be a formated log line without trailing ...
  34. [34]
  35. [35]
    openSUSE:Libzypp satsolver basics
    Sep 12, 2010 · This article presents the basics concept behind the SAT solver used in ZYpp. The following is based on a presentation given by Michael Schröder at FOSDEM 2008.
  36. [36]
    openSUSE:Libzypp satsolver internals - openSUSE Wiki
    ### Summary of ZYpp Dependency Resolution from https://en.opensuse.org/openSUSE:Libzypp_satsolver_internals
  37. [37]
    zypper: Command-line interface to ZYpp system management ...
    zypper is a command-line interface to ZYpp system management library (libzypp). It can be used to install, update, remove software, manage repositories, ...<|separator|>
  38. [38]
    Zypper - openSUSE User Documentation Project
    Zypper is a command line package manager for installing, updating and removing packages. It also manages repositories, can perform various queries.
  39. [39]
    Zypper package manager - SUSE Documentation
    Oct 27, 2025 · Zypper is a command-line package manager for installing, updating and removing packages. It can also be used to manage repositories.Missing: key | Show results with:key
  40. [40]
    Zypper Adds Experimental Parallel Downloads - openSUSE News
    Mar 27, 2025 · A new zypper experimental media backend and support for parallel package downloads have been introduced with the release of libzypp version 17.36.4 and zypper ...
  41. [41]
    Installing or removing software | Administration Guide | SLES 15 SP7
    Use YaST's software manager to install/remove packages. Right-click packages and choose install or delete. YaST resolves dependencies automatically.
  42. [42]
    Package management - openSUSE Wiki
    Jun 30, 2023 · Package management in openSUSE uses tools like Libzypp, YaST, and Zypper to install, upgrade, and remove software from repositories.
  43. [43]
    openSUSE: what are patterns and how to install them
    Aug 14, 2024 · In openSUSE, a pattern is a list of packages for a purpose. Install them using `zypper in -t pattern <pattern_name>` or via YaST.
  44. [44]
    YaST in text mode | Reference | openSUSE Leap 15.6
    To launch the ncurses-based version of YaST, open the terminal and run the sudo yast2 command. Use the →| or arrow keys to navigate between interface elements ...
  45. [45]
    PackageKit-backend-zypp - openSUSE Software
    PackageKit is a system designed to make installing and updating software on your computer easier. The primary design goal is to unify all the software graphical ...Missing: integration | Show results with:integration
  46. [46]
    New Package Management Tool Debuts - openSUSE News
    Dec 20, 2024 · The name for this project was updated to Myrlyn on Jan. 9, 2025. YQPkg, a promising new package management tool for openSUSE, is preparing ...
  47. [47]
    RELEASE_NOTES_MIC.txt - Tizen
    ... zypp backend * fix 'python-xml' depends used by cElements * fix xml requirements * fix logfile not in release of '--release' when creation failed * fix ...
  48. [48]
    Installation History app - Applications - Sailfish OS Forum
    Feb 9, 2022 · It's a viewer for the Zypper /var/log/zypp/history , i.e. it displays the times when packages were installed and uninstalled. Nothing terribly ...Missing: Tizen | Show results with:Tizen
  49. [49]
    11. Software Repositories - Adding and Managing Package ...
    You should always have the four official repositories (which are configured out of the box). Main Repository (OSS); Main Repository (NON-OSS); Main Update ...
  50. [50]
    Managing software with command line tools | openSUSE Leap 15.6
    Zypper is a command line package manager for installing, updating, and removing packages. It also manages repositories. It is especially useful for ...
  51. [51]
    Package Management - SUSE Documentation
    To manage packages on a client, navigate to Systems , click the client to manage, and navigate to the Systems Software Packages subtab.
  52. [52]
  53. [53]
    Upgrading online | Upgrade Guide | SLED 15 SP7
    To change this default behavior and allow only required packages, adjust the solver.onlyRequires option in /etc/zypp/zypp.conf . solver.onlyRequires = true
  54. [54]
    Getting started | Security and Hardening Guide | SLES 15 SP7
    AppArmor is installed and running on any installation of SUSE® Linux Enterprise Server by default, regardless of what patterns are installed. The packages ...
  55. [55]
    SUSE Linux Enterprise Server Distribution
    Rating 4.4 (382) SUSE Linux Enterprise Server (SLES) is a highly reliable, scalable, and secure server operating system, designed to power mission-critical workloads.
  56. [56]
  57. [57]
    Sailfish OS Cheat Sheet
    Development Commands, The default IP of the device for USB connections is set in Settings > Developer tools > USB IP address, which is by default set to 192. ...Missing: YaST | Show results with:YaST
  58. [58]
    GBS Frequently Asked Questions - Tizen Docs
    Double-check the proxy settings and add the -E option when running the sudo zypper refresh command. If that solves the problem, preserve the environment ...
  59. [59]
    [OE-core] [PATCH 0/6] Fix a number of rpm/zypper issues and related
    Mar 16, 2011 · [OE-core] [PATCH 0/6] Fix a number of rpm/zypper issues and related. Mark Hatle mark.hatle at windriver.com. Wed Mar 16 16:15:20 UTC 2011.
  60. [60]
    openSUSE:Libzypp API
    Dec 4, 2013 · libzypp provides all the functionality for a package manager: An API for package repository management, supporting most common repository metadata formats and ...