summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-24 03:34:07 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-24 03:34:07 +0000
commit0b3c2e0bd74be68551ab2c78a13eae2604b48212 (patch)
tree3ec912dacd801b97001bf2c8eac689018b4ead96 /doc
parent3f7c1449c862ddfaec19499323f6807624b05aba (diff)
downloadportage-0b3c2e0bd74be68551ab2c78a13eae2604b48212.tar.gz
portage-0b3c2e0bd74be68551ab2c78a13eae2604b48212.tar.bz2
portage-0b3c2e0bd74be68551ab2c78a13eae2604b48212.zip
Bug #172812 - Automatically uninstall packages to avoid blocker conflicts.
(trunk r9944:9956) svn path=/main/branches/2.1.2/; revision=9957
Diffstat (limited to 'doc')
-rw-r--r--doc/dependency_resolution/task_scheduling.docbook33
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'>