Home Files
Adminer
Execute Command
PHP Eval
Symlink
File Upload
Owner :
www-data
PHP Version
5.6.40-0+deb8u12
Disk Space
40.94 GB
Server Addr
19-www4
Your IP
10.10.10.40
Edit File
File:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><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.78.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 bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><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 name="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%"></td></tr></table><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-idp57468064.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%"></td></tr></table><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-idp57477216.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%"></td></tr></table><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-idp57484112.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%"></td></tr></table><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-idp57504912.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%"></td></tr></table><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-idp57516192.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>