Libzypp/States
İçindekiler
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).
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'