This file is indexed.

/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>&gt;</strong></span>,
	  and the first generated solution by pressing
	  <span class="keycap"><strong>&lt;</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>