summaryrefslogtreecommitdiffstats
path: root/doc/dependency_resolution
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-08 07:48:59 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-08 07:48:59 +0000
commit459afecb958f9d6a6d7fb44c08c533e991cbfa63 (patch)
tree9bba8b0126230441b92ce632ffe0bf40de1d2cbc /doc/dependency_resolution
parent30612136631ec3a0ddf7d4ac24e80ea757a802b5 (diff)
downloadportage-459afecb958f9d6a6d7fb44c08c533e991cbfa63.tar.gz
portage-459afecb958f9d6a6d7fb44c08c533e991cbfa63.tar.bz2
portage-459afecb958f9d6a6d7fb44c08c533e991cbfa63.zip
Instead of doing automatic uninstalls in advance, install conflicting
packages first and then do the uninstall afterwards. This requires special handling for file collisions occur, but it's preferred because it ensures that package files remain installed in a usable state whenever possible. When file collisions occur between conflicting packages, the contents entries for those files are removed from the packages that are scheduled for uninstallation. This prevents uninstallation operations from removing overlapping files that have been claimed by conflicting packages. svn path=/main/trunk/; revision=10225
Diffstat (limited to 'doc/dependency_resolution')
-rw-r--r--doc/dependency_resolution/task_scheduling.docbook12
1 files changed, 11 insertions, 1 deletions
diff --git a/doc/dependency_resolution/task_scheduling.docbook b/doc/dependency_resolution/task_scheduling.docbook
index f879980cd..01953128e 100644
--- a/doc/dependency_resolution/task_scheduling.docbook
+++ b/doc/dependency_resolution/task_scheduling.docbook
@@ -21,7 +21,7 @@
</para>
<para>
In order to avoid a conflict, a package may need to be uninstalled
- in advance, rather than through replacement. The following constraints
+ rather than replaced. The following constraints
protect inappropriate packages from being chosen for automatic
uninstallation:
<itemizedlist>
@@ -46,6 +46,16 @@
</listitem>
</itemizedlist>
</para>
+ <para>
+ In order to ensure that package files remain installed in a usable state
+ whenever possible, uninstallation operations are not executed
+ until after all associated conflicting packages have been installed.
+ When file collisions occur between conflicting packages, the contents
+ entries for those files are removed from the packages
+ that are scheduled for uninstallation. This prevents
+ uninstallation operations from removing overlapping files that
+ have been claimed by conflicting packages.
+ </para>
</sect1>
<sect1 id='dependency-resolution-task-scheduling-circular-dependencies'>
<title>Circular Dependencies</title>