Libzypp/Solver/Before 10 1
From openSUSE
| This page is work in progress. It will be expanded as time permits. For specific questions, please ask the author. |
[edit]
What changed compares to SUSE Linux before 10.1
ZYPP integrates YaST and ZENworks/RedCarpet technology
Whats new
- all objects share the same baseclass
- all objects share the same semantics
- patches are integrated
- patches are no containers anymore, but relations of packages
- relates to the installed (eventually broken) one
- relates to the fixed one
- fixed packages are available standalone (outside of patches)
Resolver
- converted from libredcarpet (lib/gobject -> C++)
- extended for installation, distribution upgrade, resolvables
- biggest change:
Its task based
- The old YaST resolver was targeted at interactive use within YaST
- The new resolver is targeted at central administration
The solver has two responsibilities
- execute given install and uninstall requests
- ensure consistency of the system
The solver computes multiple solutions. So if multiple packages can be installed to satisfy a dependency, the solver will take both into account and compute two solutions.
After all solutions are computed, the 'best' one is choosen. Best is defined as
- best versions
- minimal changes of packages (prefer updates to additional installs)
- minimal package size (minimize download)
It does not
- ask if multiple solutions are possible
- have knowledge about the system. So if you delete glibc, all packages which depend on glibc will also be deleted (execute given uninstall request, ensure consistency)

