diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-23 23:53:01 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-23 23:53:01 +0000 |
commit | f672825a1e2c9019979f199d220dec598e19ad30 (patch) | |
tree | 132b075710fbc143255a2e26517baefa636a5262 | |
parent | 3214e4ca735be7e349a6c8db4d773d2428d4af1a (diff) | |
download | portage-f672825a1e2c9019979f199d220dec598e19ad30.tar.gz portage-f672825a1e2c9019979f199d220dec598e19ad30.tar.bz2 portage-f672825a1e2c9019979f199d220dec598e19ad30.zip |
Bug #172812 - Document new automatic uninstallation behavior in the
"Conflict Avoidance" section.
svn path=/main/trunk/; revision=9948
-rw-r--r-- | doc/dependency_resolution/task_scheduling.docbook | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/doc/dependency_resolution/task_scheduling.docbook b/doc/dependency_resolution/task_scheduling.docbook index 8979a9f62..d9ecec168 100644 --- a/doc/dependency_resolution/task_scheduling.docbook +++ b/doc/dependency_resolution/task_scheduling.docbook @@ -12,11 +12,38 @@ <sect1 id='dependency-resolution-task-scheduling-conflict-avoidance'> <title>Conflict Avoidance</title> <para> - In some cases it is possible to adjust package installation order - to avoid having two conflicting packages installed simultaneously. + Sometimes a package installation order exists such that it is + possible to avoid having two conflicting packages installed + simultaneously. If a currently installed package conflicts with a + new package that is planned to be installed, it may be possible to + solve the conflict by replacing the installed package with a + different package that occupies the same slot. </para> <para> - TODO: Automatically uninstall packages when necessary to avoid conflicts. + In order to avoid a conflict, a package may need to be uninstalled + in advance, rather than through replacement. The following constraints + protect inappropriate packages from being chosen for automatic + uninstallation: + <itemizedlist> + <listitem> + Installed packages that have been pulled into the current dependency + graph will not be uninstalled. Due to + <link linkend='dependency-resolution-package-modeling-dependency-neglection'> + dependency neglection</link>, other checks may be necessary in order + to protect inappropriate packages from being uninstalled. + </listitem> + <listitem> + An installed package that is matched by a dependency atom from the + "system" set will not be uninstalled in advance since it might not + be safe. Such a package will be uninstalled through replacement. + </listitem> + <listitem> + An installed package that is matched by a dependency atom from the + "world" set will not be uninstalled if the dependency graph does not + contain a replacement package that is matched by the same dependency + atom. + </listitem> + </itemizedlist> </para> </sect1> <sect1 id='dependency-resolution-task-scheduling-circular-dependencies'> |