Which repository priority rules govern zypper’s dependency resolution in mixed Leap/Tumbleweed environments?
0 reputation · 19 Mar 2021, 02:15 UTC
0 reputation · 19 Mar 2021, 02:15 UTC
To determine the exact rules zypper follows when selecting package versions during a dependency conflict in a mixed Leap/Tumbleweed setup, and to assess whether a failed transaction triggers a complete rollback of all file system changes, including configuration files.
Current documentation states that zypper favors higher‑priority repositories, but it is unclear if this rule applies uniformly across all dependency types and whether the rollback process restores every modified file or leaves residual changes.
35775 reputation · 19 Mar 2021, 06:22 UTC
In openSUSE environments, zypper resolves package selection using a numerical priority system where lower numerical values indicate higher priority. If a package exists in multiple repositories, zypper selects the version from the repository with the lowest priority number. If priorities are identical, the package manager typically defaults to the highest version number available.
The priority algorithm remains consistent across Leap and Tumbleweed releases. When resolving dependencies that span multiple repositories, zypper follows these general rules:
dist-upgrade or up operation.Zypper does not guarantee a full filesystem rollback of all modifications. While it can remove newly installed packages if a transaction fails, it does not provide atomic state recovery for the entire filesystem.
Specifically, changes to configuration files are not automatically reverted. If a package installation triggers a post-installation script that modifies a config file, or if .rpmnew/.rpmsave files are created, these changes often persist even if the package installation is rolled back. Full system recovery in these scenarios typically requires a Btrfs snapshot restore rather than a zypper-level rollback.
To analyze how zypper is currently prioritizing your mixed Leap/Tumbleweed repositories, use the following commands:
# View current repository priorities
zypper lr
# Simulate a transaction to see the resolution path without applying changes
zypper install -d [package_name]
Note: Mixing Leap and Tumbleweed repositories is highly unstable and generally discouraged due to divergent glibc and kernel versions.
To provide a more specific recommendation on your conflict, please specify if you have vendor_stickiness enabled in your global configuration, as this significantly alters how zypper handles repository overrides.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.