This file is indexed.

/usr/share/doc/aptitude/html/fr/ch02s03s04.html is in aptitude-doc-fr 0.6.11-1.

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!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>Coûts dans la résolution interactive de dépendances</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="Manuel de l'utilisateur d'aptitude"><link rel="up" href="ch02s03.html" title="Résoudre les dépendances de paquets"><link rel="prev" href="ch02s03s03.html" title="Résolution interactive des dépendances"><link rel="next" href="ch02s03s05.html" title="Configuration de la résolution de dépendances interactive"><link rel="preface" href="pr01.html" title="Introduction"><link rel="chapter" href="ch01.html" title="Chapitre 1. Démarrage rapide"><link rel="chapter" href="ch02.html" title="Chapitre 2. Guide de référence d'aptitude"><link rel="chapter" href="ch03.html" title="Chapitre 3. Foire aux questions sur aptitude"><link rel="chapter" href="ch04.html" title="Chapitre 4. Crédits"><link rel="reference" href="rn01.html" title="Référence de l'interface en ligne de commande"><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"><link rel="subsection" href="ch02s03s04.html#secDependencyResolutionCostsAndCostComponents" title="Coûts et composantes de coût"><link rel="subsection" href="ch02s03s04.html#secDependencyResolutionCostsSafetyCosts" title="Coût de sécurité"></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">Coûts dans la résolution interactive de dépendances</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03s03.html"><img src="images/prev.gif" alt="Précédent"></a> </td><th width="60%" align="center">Résoudre les dépendances de paquets</th><td width="20%" align="right"> <a accesskey="n" href="ch02s03s05.html"><img src="images/next.gif" alt="Suivant"></a></td></tr></table><hr></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="secDependencyResolutionCosts"></a>Coûts dans la résolution interactive de dépendances</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="ch02s03s04.html#secDependencyResolutionCostsAndCostComponents">Coûts et composantes de coût</a></span></dt><dt><span class="section"><a href="ch02s03s04.html#secDependencyResolutionCostsSafetyCosts">Coût de sécurité</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="secDependencyResolutionCostsAndCostComponents"></a>Coûts et composantes de coût</h4></div></div></div><p>
            Le <em class="firstterm">coût</em> d'une solution produite par la résolution
interactive est une valeur qu'<span class="command"><strong>aptitude</strong></span> utilise pour mesurer la
<span class="quote">« <span class="quote">mauvaise qualité</span> »</span> de la solution. Les solutions les
<span class="quote">« <span class="quote">meilleures</span> »</span> sont toujours affichées en premier. Le coût d'une
solution est défini dans l'option de configuration <a class="link" href="ch02s05s05.html#configProblemResolver-SolutionCost"><code class="literal">Aptitude::ProblemResolver::SolutionCost</code></a>.
          </p><p>
            Quelques coûts typiques sont donnés dans <a class="xref" href="ch02s03s04.html#exampleResolverCosts" title="Exemple 2.1. Exemples de coût pour le solveur">Exemple 2.1, « Exemples de coût pour le solveur »</a>.
          </p><div class="example"><a name="exampleResolverCosts"></a><p class="title"><b>Exemple 2.1. Exemples de coût pour le solveur</b></p><div class="example-contents"><p>
              Le coût par défaut, pour lequel les solutions sont classées suivant leur
<a class="link" href="ch02s03s04.html#secDependencyResolutionCostsSafetyCosts" title="Coût de sécurité">coût de
sécurité</a>, puis par leur priorité d'épinglage <code class="systemitem">apt</code> :
            </p><pre class="screen">safety, priority</pre><p>
              Retirer le moins de paquets possible, puis annuler le moins d'actions
possible :
            </p><pre class="screen">removals, canceled-actions</pre><p>
              Classer les solutions en fonction d'un score donné par le nombre de paquets
qu'elles suppriment (<span class="quote">« <span class="quote"><code class="literal">removals</code></span> »</span>)
<span class="emphasis"><em>plus</em></span> deux fois le nombre d'actions qu'elles annulent
(<span class="quote">« <span class="quote"><code class="literal">cancelled-actions</code></span> »</span>).
            </p><pre class="screen">removals + 2 * canceled-actions</pre></div></div><br class="example-break"><p>
            Comme dans les exemples précédent, un coût n'est pas nécessairement un
simple nombre. En fait, un coût consiste en une ou plusieurs
<em class="firstterm">composantes de coût</em>, chacune étant un nombre associé
à une solution. Lors du classement des solutions, le solveur examine les
composantes de coût dans l'ordre, en passant aux composantes suivantes
seulement si les précédentes sont égales. Par exemple, dans le coût
<span class="quote">« <span class="quote"><code class="literal">removals, canceled-actions</code></span> »</span>, les solutions
avec le moins de suppressions apparaissent toujours avant les autres,
indépendamment du nombre d'actions qu'elles annuleraient. Cependant, des
solutions avec le même nombre de suppressions sont classées dans l'ordre
croissant du nombre d'actions annulées.
          </p><p>
            Les composantes de coût sont de deux types : les
<span class="emphasis"><em>élémentaires</em></span> et les <span class="emphasis"><em>composées</em></span>.
          </p><p>
            Les composantes élémentaires nomment simplement une propriété de la
solution, telle que le nombre de mises à jour
(<span class="quote">« <span class="quote"><code class="literal">upgrades</code></span> »</span>) ou le nombre de suppressions
(<span class="quote">« <span class="quote"><code class="literal">removals</code></span> »</span>). La liste des composantes
élémentaires intégrées dans <span class="command"><strong>aptitude</strong></span> peut être trouvée dans <a class="xref" href="ch02s03s04.html#tableBasicCostComponents" title="Tableau 2.1. Composantes de coût élémentaires">Tableau 2.1, « Composantes de coût élémentaires »</a>. Vous pouvez aussi créer vos propres
composantes de coût en utilisant les indicateurs
<code class="literal">add-to-cost-component</code> et
<code class="literal">raise-cost-component</code>. Consultez <a class="xref" href="ch02s03s05.html#secDependencyResolutionHints" title="Configuration des indicateurs du solveur">la section intitulée « Configuration des indicateurs du solveur »</a> pour les détails.
          </p><p>
            Chaque composante de coût élémentaire est soit un
<span class="emphasis"><em>compteur</em></span>, soit un <span class="emphasis"><em>niveau</em></span>. Les
compteurs comptent combien de conditions d'un certain type sont satisfaites
par les actions d'une solution (telles que l'installation ou la suppression
de paquets), alors que les niveaux associent un nombre à chaque action et
renvoient le plus grand de ces nombres attachés à chaque action de la
solution.
          </p><div class="table"><a name="tableBasicCostComponents"></a><p class="title"><b>Tableau 2.1. Composantes de coût élémentaires</b></p><div class="table-contents"><table summary="Composantes de coût élémentaires" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Nom</th><th>Type</th><th>Description </th></tr></thead><tbody><tr><td><code class="literal">broken-holds</code></td><td>Compteur</td><td>
                    Compte le nombre de figeages que la solution casse, si le solveur est
autorisé à le faire (<a class="link" href="ch02s05s05.html#configProblemResolver-Allow-Break-Holds"><code class="literal">Aptitude::ProblemResolver::Allow-Break-Holds</code></a>).
                  </td></tr><tr class="oddrow"><td><code class="literal">canceled-actions</code></td><td>Compteur</td><td>
                    Compte le nombre d'actions en attente que la solution annule (en gardant des
paquets dans leur version actuelle).
                  </td></tr><tr><td><code class="literal">installs</code></td><td>Compteur</td><td>
                    Compte le nombre de paquets que la solution installe.
                  </td></tr><tr class="oddrow"><td><code class="literal">non-default-versions</code></td><td>Compteur</td><td>
                    Compte le nombre de versions que la solution installe ou met à jour depuis
des sources qui ne sont pas celles par défaut.
                  </td></tr><tr><td><code class="literal">priority</code></td><td>Niveau</td><td>
                    Une valeur qui augmente lorsque la priorité d'épinglage <code class="systemitem">apt</code> d'une version
diminue. Précisément, elle est calculée en prenant l'opposée de la priorité
d'épinglage (par exemple, si la priorité d'épinglage vaut 500, cette
composante vaut -500).
                  </td></tr><tr class="oddrow"><td><code class="literal">removals</code></td><td>Compteur</td><td>
                    Compte le nombre de paquets que la solution supprime.
                  </td></tr><tr><td><code class="literal">removals-of-manual</code></td><td>Compteur</td><td>
                    Compte le nombre de paquets installés manuellement que la solution supprime.
                  </td></tr><tr class="oddrow"><td><code class="literal">safety</code></td><td>Niveau</td><td>
                    Une valeur heuristique qui augmente lorsqu'une action devient moins
<span class="quote">« <span class="quote">sûre</span> »</span> ; consultez <a class="xref" href="ch02s03s04.html#secDependencyResolutionCostsSafetyCosts" title="Coût de sécurité">la section intitulée « Coût de sécurité »</a> pour plus de détails.
                  </td></tr><tr><td><code class="literal">upgrades</code></td><td>Compteur</td><td>
                    Compte le nombre de paquets que la solution met à jour.
                  </td></tr></tbody></table></div></div><br class="table-break"><p>
            Les composantes composées sont construites en combinant les valeurs des
composantes élémentaires. Par exemple, <code class="literal">removals +
canceled-actions</code> fait la somme des composantes élémentaires
<code class="literal">removal</code> et <code class="literal">canceled-actions</code>, pour
aboutir à une composante qui compte le nombre de suppressions
<span class="emphasis"><em>et</em></span> d'actions annulées. Les composantes composées
combinent les compteurs en les ajoutant et les niveaux en prenant leur
maximum, comme dans <a class="xref" href="ch02s03s04.html#figureCompoundCostComponents" title="Figure 2.11. Syntaxe des composantes de coût composées">Figure 2.11, « Syntaxe des composantes de coût composées »</a>.
          </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>
              Ajouter deux niveaux, prendre le maximum de deux compteurs ou combiner des
niveaux et des compteurs de quelque manière que ce soit est considéré comme
une erreur. Par exemple, les coûts <code class="literal">removals + safety</code> et
<code class="literal">max(u(upgrades, installs)</code> seront considérés comme erronés
et ignorés par le solveur.<a href="#ftn.idp62770880" class="footnote" name="idp62770880"><sup class="footnote">[13]</sup></a>
            </p></td></tr></table></div><div class="figure"><a name="figureCompoundCostComponents"></a><p class="title"><b>Figure 2.11. Syntaxe des composantes de coût composées</b></p><div class="figure-contents"><div class="informalexample"><p>
                Ajouter deux (ou plus) composantes élémentaires :
              </p><pre class="synopsis">
                <code class="literal">[<span class="optional"><em class="replaceable"><code>facteur1</code></em> *</span>]<em class="replaceable"><code>coût1</code></em> + [<span class="optional"><em class="replaceable"><code>facteur2</code></em> *</span>]<em class="replaceable"><code>coût2</code></em> + ...</code>
              </pre><p>
                Prendre le maximum de deux (ou plus) composantes de coûts élémentaires :
              </p><pre class="synopsis">
                <code class="literal">max([<span class="optional"><em class="replaceable"><code>facteur1</code></em></span>] *<em class="replaceable"><code>coût1</code></em>, [<span class="optional"><em class="replaceable"><code>facteur2</code></em> *</span>]<em class="replaceable"><code>coût2</code></em>, ...)</code>
              </pre></div></div></div><br class="figure-break"><p>
            Remarquez que chaque composante élémentaire peut être multipliée par un
facteur avant d'être combinée avec d'autres composantes. Cela peut être
utilisé pour contrôler les compromis que le solveur fait entre les
coûts. Par exemple, un coût de <code class="literal">2*removals + 3*upgrades</code>
signifie que trois suppressions sont exactement aussi mauvaises que deux
mises à jour. Une solution contenant quatre suppressions et une mise à jour
sera considérée comme étant équivalente à une contenant une suppression et
trois mises à jour, puisque qu'elles ont toutes les deux un coût égal à 11.
          </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="secDependencyResolutionCostsSafetyCosts"></a>Coût de sécurité</h4></div></div></div><div class="figure"><a name="figureSafetyCostLevels"></a><p class="title"><b>Figure 2.12. Niveaux de coût de sécurité</b></p><div class="figure-contents"><div class="mediaobject"><img src="images/safety-cost-level-diagram.png" alt="Niveaux de coût de sécurité"></div></div></div><br class="figure-break"><p>
            La composante de coût <code class="literal">safety</code> (<span class="quote">« <span class="quote">sécurité</span> »</span>)
est une estimation heuristique du fait qu'une solution est plus ou moins
<span class="quote">« <span class="quote">sûre</span> »</span>. Les coûts de sécurité peuvent être pensés comme une
façon de diviser les solutions en différents <span class="quote">« <span class="quote">niveaux</span> »</span>
étiquetés par des nombres, les niveaux les <span class="quote">« <span class="quote">moins sûrs</span> »</span> ayant
les nombres les plus grands. <a class="xref" href="ch02s03s04.html#figureSafetyCostLevels" title="Figure 2.12. Niveaux de coût de sécurité">Figure 2.12, « Niveaux de coût de sécurité »</a> montre
comment cela fonctionne avec les réglages par défaut d'<span class="command"><strong>aptitude</strong></span>.
          </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Astuce]" src="images/tip.png"></td><th align="left">Astuce</th></tr><tr><td align="left" valign="top"><p>
              Les niveaux de coût de sécurité sont juste une façon de contrôler l'ordre
dans lequel les solutions aux problèmes de dépendances sont
proposées. Consultez <a class="xref" href="ch02s03s04.html" title="Coûts dans la résolution interactive de dépendances">la section intitulée « Coûts dans la résolution interactive de dépendances »</a>  pour
une description complète sur la façon dont <span class="command"><strong>aptitude</strong></span> classe les solutions.
            </p></td></tr></table></div><p>
            Par défaut, <span class="command"><strong>aptitude</strong></span> initialise le solveur avec un ensemble
<span class="quote">« <span class="quote">raisonnable</span> »</span> de niveaux de coût de sécurité. Ceux-ci sont :
          </p><div class="table"><a name="tableDefaultSafetyCostLevels"></a><p class="title"><b>Tableau 2.2. Niveaux de coût de sécurité par défaut</b></p><div class="table-contents"><table summary="Niveaux de coût de sécurité par défaut" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Niveau de coût</th><th>Description </th><th>Option de configuration</th></tr></thead><tbody><tr><td>10 000</td><td>
                    Solutions qui contiennent uniquement des actions <span class="quote">« <span class="quote">sûres</span> »</span>
(installation de la version candidate d'un paquet ou conservation d'un
paquet dans sa version actuelle) et des suppressions de paquets.
                  </td><td><code class="literal"><a class="link" href="ch02s05s05.html#configProblemResolver-Safe-Level">Aptitude::ProblemResolver::Safe-Level</a></code>,
<code class="literal"><a class="link" href="ch02s05s05.html#configProblemResolver-Remove-Level">Aptitude::ProblemResolver::Remove-Level</a></code></td></tr><tr class="oddrow"><td>20 000</td><td>
                    Les solutions qui annulent toutes les actions de l'utilisateur.
                  </td><td><code class="literal"><a class="link" href="ch02s05s05.html#configProblemResolver-Keep-All-Level">Aptitude::ProblemResolver::Keep-All-Level</a></code></td></tr><tr><td>40 000</td><td>
                    Solutions qui cassent les figeages créés par l'utilisateur ou installent des
versions interdites.
                  </td><td><code class="literal"><a class="link" href="ch02s05s05.html#configProblemResolver-Break-Hold-Level">Aptitude::ProblemResolver::Break-Hold-Level</a></code></td></tr><tr class="oddrow"><td>50 000</td><td>
                    Solutions qui installent des paquets depuis des sources autres que celles
par défaut (comme depuis <span class="quote">« <span class="quote"><code class="literal">experimental</code></span> »</span> par
exemple).
                  </td><td><code class="literal"><a class="link" href="ch02s05s05.html#configProblemResolver-Non-Default-Level">Aptitude::ProblemResolver::Non-Default-Level</a></code></td></tr><tr><td>60 000</td><td>
                    Solutions qui suppriment des paquets essentiels.
                  </td><td><code class="literal"><a class="link" href="ch02s05s05.html#configProblemResolver-Remove-Essential-Level">Aptitude::ProblemResolver::Remove-Essential-Level</a></code></td></tr></tbody></table></div></div><br class="table-break"><p>
            Si une solution peut être classée dans plusieurs niveaux, elle sera placée
dans le plus élevé, c'est-à-dire celui qui sera affiché en dernier. Par
exemple, une solution qui met à jour un paquet à sa version candidate, et
qui casse un figeage sur un autre paquet sera placée au niveau 40 000. Vous
pouvez ajuster les niveaux des versions individuelles en utilisant des
indications du solveur. Consultez <a class="xref" href="ch02s03s05.html#secDependencyResolutionHints" title="Configuration des indicateurs du solveur">la section intitulée « Configuration des indicateurs du solveur »</a> pour les détails. Les niveaux par
défaut sont illustrés dans <a class="xref" href="ch02s03s04.html#figureSafetyCostLevels" title="Figure 2.12. Niveaux de coût de sécurité">Figure 2.12, « Niveaux de coût de sécurité »</a>.
          </p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idp62770880" class="footnote"><p><a href="#idp62770880" class="para"><sup class="para">[13] </sup></a>La limite a été imposée car des structures de coût plus complexes pourraient
rendre difficile l'optimisation du solveur. Les versions futures du
programme pourraient supprimer certaines des restrictions si elles
s'avéraient superflues.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03s03.html"><img src="images/prev.gif" alt="Précédent"></a> </td><td width="20%" align="center"><a accesskey="u" href="ch02s03.html"><img src="images/up.gif" alt="Niveau supérieur"></a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03s05.html"><img src="images/next.gif" alt="Suivant"></a></td></tr><tr><td width="40%" align="left" valign="top">Résolution interactive des dépendances </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.gif" alt="Sommaire"></a></td><td width="40%" align="right" valign="top"> Configuration de la résolution de dépendances interactive</td></tr></table></div></body></html>