/usr/share/doc/aptitude/html/en/ch02s03s03.html is in aptitude-doc-en 0.8.10-6ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | <?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Resolving Dependencies Interactively</title><link rel="stylesheet" type="text/css" href="aptitude.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="aptitude user's manual" /><link rel="up" href="ch02s03.html" title="Resolving package dependencies" /><link rel="prev" href="ch02s03s02.html" title="Immediate dependency resolution" /><link rel="next" href="ch02s03s04.html" title="Costs in the interactive dependency resolver" /><link rel="preface" href="pr01.html" title="Introduction" /><link rel="chapter" href="ch01.html" title="Chapter 1. Getting started" /><link rel="chapter" href="ch02.html" title="Chapter 2. aptitude reference guide" /><link rel="chapter" href="ch03.html" title="Chapter 3. aptitude frequently asked questions" /><link rel="chapter" href="ch04.html" title="Chapter 4. Credits" /><link rel="reference" href="rn01.html" title="Command-line reference" /><link rel="refentry" href="rn01re01.html" title="aptitude" /><link rel="refentry" href="rn01re02.html" title="aptitude-create-state-bundle" /><link rel="refentry" href="rn01re03.html" title="aptitude-run-state-bundle" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Resolving Dependencies Interactively</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03s02.html"><img src="images/prev.gif" alt="Prev" /></a> </td><th width="60%" align="center">Resolving package dependencies</th><td width="20%" align="right"> <a accesskey="n" href="ch02s03s04.html"><img src="images/next.gif" alt="Next" /></a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="secResolver"></a>Resolving Dependencies Interactively</h3></div></div></div><p>
If a dependency problem arises that cannot be handled using
the immediate dependency resolver, <span class="command"><strong>aptitude</strong></span> can assist you
in resolving it. As soon as a problem occurs, a red bar
will appear at the bottom of the screen with a summary of
<span class="command"><strong>aptitude</strong></span>'s suggestion about how to fix it. For instance,
in the following screenshot, <span class="command"><strong>aptitude</strong></span> is indicating that
it can resolve the situation by keeping two packages at
their current versions.
</p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="100%"><tr><td><img src="images/broken-snapshot.png" width="100%" alt="[package view, packages broken after attempting to remove sound-juicer]" /></td></tr></table><div class="longdesc-link" align="right"><br clear="all" /><span class="longdesc-link">[<a href="ld-idm2048.html" target="longdesc">D</a>]</span></div></div></div><p>
As indicated at the bottom of the screen, you can view
additional solutions by pressing <span class="keycap"><strong>.</strong></span> and
<span class="keycap"><strong>,</strong></span>, apply the current solution by pressing
<span class="keycap"><strong>!</strong></span>, and examine the solution in more detail
by pressing <span class="keycap"><strong>e</strong></span>. When you examine the
current solution, a screen similar to the following will
appear:
</p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="100%"><tr><td><img src="images/solution-screen-snapshot.png" width="100%" alt="[dependency resolver #1]" /></td></tr></table><div class="longdesc-link" align="right"><br clear="all" /><span class="longdesc-link">[<a href="ld-idm2061.html" target="longdesc">D</a>]</span></div></div></div><p>
You can access information about the package affected by an
action by simply pressing <span class="keycap"><strong>Enter</strong></span> while the
package is highlighted. For a more detailed explanation of
why <span class="command"><strong>aptitude</strong></span> made a particular decision, you can highlight
the element in the list. When you do so, the lower half of
the screen will display the dependency which was resolved by
<span class="command"><strong>aptitude</strong></span>'s choice, along with every way in which this
dependency could have been resolved.
</p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="100%"><tr><td><img src="images/solution-explanation-snapshot.png" width="100%" alt="[explanation about dependency resolver decisions]" /></td></tr></table><div class="longdesc-link" align="right"><br clear="all" /><span class="longdesc-link">[<a href="ld-idm2073.html" target="longdesc">D</a>]</span></div></div></div><p>
You can guide the dependency resolver to a solution of which
you approve by <em class="firstterm">approving</em> or
<em class="firstterm">rejecting</em> the individual actions of a
solution. If you <em class="firstterm">approve</em> an action,
the resolver will choose it whenever possible, ignoring
alternatives (when there are several approved alternatives,
any one of them could be chosen). On the other hand, if you
<em class="firstterm">reject</em> an action, the resolver will
never choose that action.
</p><p>
To reject an action, highlight it and press
<span class="keycap"><strong>r</strong></span>; the rejection can be cancelled by
pressing <span class="keycap"><strong>r</strong></span> again. Similarly, select an
action and press <span class="keycap"><strong>a</strong></span> to approve it; press
<span class="keycap"><strong>a</strong></span> again to restore its original state. You
can undo either action by using <span class="guimenu">Undo</span> → <span class="guimenuitem">Undo</span> (<span class="shortcut"><strong><span class="keycap"><strong>Control</strong></span>+<span class="keycap"><strong>u</strong></span></strong></span>) while the
resolver screen is active. If you cancel a rejection or an
approval, any solutions that were ignored will be available
the next time that you generate a new solution.
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png" /></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p>
By default, the resolver rejects actions that change the
state of held packages, or that install forbidden versions
of packages. You can override these rejections, thus
allowing the hold or forbidding to be automatically
overridden, in the same way that you would override any
other rejection. Setting the configuration option <a class="link" href="ch02s05s05.html#configProblemResolver-Allow-Break-Holds"><code class="literal">Aptitude::ProblemResolver::Allow-Break-Holds</code></a>
to <code class="literal">true</code> will disable this behavior,
meaning that the resolver will always break holds (albeit
at a penalty, see <a class="link" href="ch02s05s05.html#configProblemResolver-BreakHoldScore"><code class="literal">Aptitude::ProblemResolver::BreakHoldScore</code></a>).
</p></td></tr></table></div><p>
Rejected actions are colored red and marked with an
<span class="quote">“<span class="quote">R</span>”</span>, while approved actions are colored green
and marked with an <span class="quote">“<span class="quote">A</span>”</span>. You can see this in
the following screenshot, where the action <span class="quote">“<span class="quote">keep
<code class="systemitem">gstreamer0.8-cdparanoia</code> at its
current version</span>”</span> has been rejected, and the action
<span class="quote">“<span class="quote">keep <code class="systemitem">sound-juicer</code> at its
current version</span>”</span> has been approved.
</p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="100%"><tr><td><img src="images/solution-reject-and-approve-snapshot.png" width="100%" alt="[rejections and approvals in dependency resolution]" /></td></tr></table><div class="longdesc-link" align="right"><br clear="all" /><span class="longdesc-link">[<a href="ld-idm2112.html" target="longdesc">D</a>]</span></div></div></div><p>
Rejections and approvals only affect <span class="emphasis"><em>newly
generated</em></span> solutions. You can tell when a new
solution will be generated by examining the indicator in the
lower left hand corner of the screen: if there is a number
in parentheses, it is the number of solutions that have been
generated. Thus, when the number outside the parentheses
and the number inside are identical (as above), pressing
<span class="keycap"><strong>.</strong></span> will generate a new solution. If there
is no number in parentheses (for instance, the indicator
reads <code class="literal">[1/5]</code>), then there are no more
solutions to generate. At any time, you can select the
last generated solution by pressing <span class="keycap"><strong>></strong></span>,
and the first generated solution by pressing
<span class="keycap"><strong><</strong></span>.
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png" /></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>
The state of the problem resolver is discarded when you
modify the state of any package. If you mark a package
for installation, for upgrade, for removal, etc, the
resolver will forget all of your rejections and approvals,
as well as all the solutions that have been generated so
far.
</p></td></tr></table></div><p>
In addition to selecting actions in the list at the top of
the screen, you can also select them using the list in the
bottom half. To access this list, either click in it using
the mouse or press <span class="keycap"><strong>Tab</strong></span>. Finally, to see
the decisions that the problem resolver took arranged in
order, press <span class="keycap"><strong>o</strong></span>. This will give a list of
the dependencies that were resolved and the action taken to
resolve them, as in the following screenshot.
</p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="100%"><tr><td><img src="images/solution-story-snapshot.png" width="100%" alt="[explanations of dependency resolver solutions]" /></td></tr></table><div class="longdesc-link" align="right"><br clear="all" /><span class="longdesc-link">[<a href="ld-idm2131.html" target="longdesc">D</a>]</span></div></div></div><p>
You can leave this display mode by pressing
<span class="keycap"><strong>o</strong></span> again.
</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03s02.html"><img src="images/prev.gif" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="ch02s03.html"><img src="images/up.gif" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03s04.html"><img src="images/next.gif" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Immediate dependency resolution </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.gif" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Costs in the interactive dependency resolver</td></tr></table></div></body></html>
|