Libzypp/States

Şuraya atla: kullan, ara

Resolvable States

Basic States

Resolvables have two basic states, installed or uninstalled.

These are the basic states needed for package management and thats what most packaging tools (i.e. rpm) are working with.

Conditional Dependencies

However, with patches things get a bit more complicated as a condition does this patch apply ? is added.

This is expressed as if condition then dependency

The condition can be true or false
The dependency can be fulfilled or unfulfilled.

So we have four additional states, depending on condition and dependency.

State modifiers

However, if the condition is false, the dependency does not matter. This leaves three possible values for the state modifier.

condition dependency state modifier
false dont care unneeded
true false broken
true true satisfied


A fourth value of the state modifier is undetermined which is the default.


State values output by rug

This is how rug displays the different combinations:

state + modifier user-visible status
uninstalled + undetermined uninstalled
uninstalled + broken needed
uninstalled + unneeded not applicable
uninstalled + satisfied not needed
installed + undetermined installed
installed + broken broken
installed + unneeded no longer applicable
installed + satisfied applied



Further comments

  • undetermined
    This is the default no-op modifier.
    Most packages will have this modifier value.
  • needed
    this patch applies to your system
    (and should be preselected by the UI)
  • broken
    Somehow this patch went 'bad'
    (probably by installing a wrong package with a non-zypp based tool) and must be reinstalled.
  • not applicable
    this patch does not apply to your system.
    (It should not be displayed at the UI by default.
    Only if the user explicitly asks for "all patches", the UI should show it.
    And there should be a warning if the user selects it nevertheless)

= no longer applicable = There is no need any more for this package
(either the user installed it without need before or he removed the corresponding package(s) manually) = not needed = The patch only affects packages (no scripts/messages involved) and the system already has the right packages installed. = applied = The patch is installed, it applies to your system, and all packages have the right version.

Remember: 'patch' in the above description is just an example, it applies to all kinds of resolvables (package, patch, pattern, product).

back ...


Last edit in Trac '05/02/06 13:23:40' by 'kkaempf'


Last edit in Trac '05/02/06 13:23:40' by 'kkaempf'


Last edit in Trac '05/02/06 13:23:40' by 'kkaempf'


Last edit in Trac '05/02/06 13:23:40' by 'kkaempf'