# \[Script\] Aptitude : gestion des dépendances et orphelins

**URL:** <https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 3:33 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192 "2016-02-21T03:33:05Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![wetaskiwin](https://www.debian-fr.org/user_avatar/www.debian-fr.org/wetaskiwin/32/3845_2.png) [@wetaskiwin](https://www.debian-fr.org/u/wetaskiwin)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/81 "2016-02-21T12:24:47Z")

</div>

[quote=“ricardo”]Il t’appartient ce dossier ?  
Moi, il était placé dans /root[/quote]  
Sans doute que non, même si je l’ai trouvé dans /home. Je vais voir si je peux adapter le rm -r et je reviens dire ce que ça donne.

PS : Ça a fonctionné.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/82 "2016-02-21T12:24:47Z")

</div>

Pour tes paquets posant question, chez moi, avec une Sid super propre maintenant ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool") , seuls  
libgdu0 et python-central sont installés  
Tous les autres sont présents mais non installés.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/83 "2016-02-21T12:24:47Z")

</div>

> [@](#):
>
> …Gérard m’a donné une piste : smxi sait se mettre à jour lui-même (je savais pas vu que je l’utilise pas), y’a plus qu’à aller voir comment il est fait… 😉

Pompeur, va ! 😆

---

<div class="post-metadata">

**Author:** ![wetaskiwin](https://www.debian-fr.org/user_avatar/www.debian-fr.org/wetaskiwin/32/3845_2.png) [@wetaskiwin](https://www.debian-fr.org/u/wetaskiwin)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/84 "2016-02-21T12:24:47Z")

</div>

J’ai attaqué les orphelins au burin (aptitude show) et au marteau (vérification que les paquets désinstallés n’entraînaient pas la disparition de la moitié du système) et voilà, c’est propre.

`# fix-aptitude-dependencies
Recherche des actions prévues et des dépendances cassées...
Marquage des paquets en « Automatique » en fonction des dépendances des paquets...
Recherche des dépendances circulaires... 
deborphan : aucune bibliothèque orpheline (2 ignorées).`  
J’ai juste gardé ttf-sil-gentium-basic qui m’emmenait trop loin dans la vérification des paquets associés et libdvdcss2.

Merci. 😃

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/85 "2016-02-21T12:24:47Z")

</div>

> [@](#):
>
> Pompeur, va ! 😆

Bah c’est open source hein, je vois pas pourquoi je me ferais ch\*er pour rien. 😃

[quote=“wetaskiwin”]J’ai juste gardé ttf-sil-gentium-basic qui m’emmenait trop loin dans la vérification des paquets associés[/quote]`aptitude unmarkauto fonts-sil-gentium-basic
aptitude purge ttf-sil-gentium-basic
deborphan -R ttf-sil-gentium-basic` 😉

---

<div class="post-metadata">

**Author:** ![wetaskiwin](https://www.debian-fr.org/user_avatar/www.debian-fr.org/wetaskiwin/32/3845_2.png) [@wetaskiwin](https://www.debian-fr.org/u/wetaskiwin)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/86 "2016-02-21T12:24:48Z")

</div>

C’est mieux, il s’en va sans entraîner toute sa bande de potes. 🙂

`# aptitude purge ttf-sil-gentium-basic
Les paquets suivants seront ENLEVÉS :         
  ttf-sil-gentium-basic{p} 
0 paquets mis à jour, 0 nouvellement installés, 1 à enlever et 2 non mis à jour.
Il est nécessaire de télécharger 0 o d'archives. Après dépaquetage, 34,8 ko seront libérés.
Voulez-vous continuer ? [Y/n/?] y
(Lecture de la base de données... 117233 fichiers et répertoires déjà installés.)
Suppression de ttf-sil-gentium-basic ...`  
Heureusement que tu étais là parce que, après une journée de boulot bien remplie, j’ai du mal à faire (voir ?) la différence entre fonts-sil-gentium-basic et ttf-sil-gentium-basic.  
 ![:handgestures-thumbup:](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "Thumb Up")

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/87 "2016-02-21T12:24:48Z")

</div>

> [@](#):
>
> j’ai du mal à faire (voir ?) la différence entre fonts-sil-gentium-basic et ttf-sil-gentium-basic.

Y’a pas vraiment de différence, c’est juste que le paquet change de nom (tous les ttf-\* deviennent petit à petit des fonts-\*). Donc le temps que ça se stabilise les deux paquets existent mais l’ancien (ttf-_) ne contient plus rien à part des dépendances vers le nouveau (fonts-_) – un paquet de transition quoi.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:24 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/88 "2016-02-21T12:24:59Z")

</div>

> [@](#):
>
> [quote=“ricardo”]Les e-mail sont collectés dans un fichier et à chaque MAJ, il est envoyé à tous les “clients”

J’aime pas trop le principe de collecter des emails, mais de toutes façons Gérard m’a donné une piste : smxi sait se mettre à jour lui-même (je savais pas vu que je l’utilise pas), y’a plus qu’à aller voir comment il est fait… 😉[/quote]  
Et passer par : [faire-un-paquet-version-complete-t4691.html](http://www.debian-fr.org/faire-un-paquet-version-complete-t4691.html) ?  
Ça simplifierais en plus l’installation et l’éventuelle désinstallation.

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/89 "2016-02-21T12:25:00Z")

</div>

> [@](#):
>
> Et passer par : [debian-fr.org/faire-un-paque … t4691.html](http://www.debian-fr.org/faire-un-paquet-version-complete-t4691.html) ?

Oui ça serait une solution idéale, faut juste que j’aie le courage de monter l’architecture pour un dépôt (obligatoire pour des MAJ automatiques)… 😉

---

<div class="post-metadata">

**Author:** ![wetaskiwin](https://www.debian-fr.org/user_avatar/www.debian-fr.org/wetaskiwin/32/3845_2.png) [@wetaskiwin](https://www.debian-fr.org/u/wetaskiwin)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/90 "2016-02-21T12:25:23Z")

</div>

> [@](#):
>
> Y’a pas vraiment de différence, c’est juste que le paquet change de nom (tous les ttf-\* deviennent petit à petit des fonts-\*).

Ce sont justement les noms très proches qui me jouent des tours. L’informatique ne supporte pas la lecture en diagonale. ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/91 "2016-02-21T12:48:15Z")

</div>

Pour info :  
[ul][li] J’ai migré le script en perl au lieu de shell.  
Avantage : ça sera beaucoup moins compliqué pour moi à maintenir.  
Inconvénient : il va falloir modifier votre fichier de config /etc/apt/fix-aptitude-dependencies.conf[/li]  
[li] J’ai enfin fait un .deb, à l’avenir ça vous simplifiera l’installation / mise à jour / suppression.[/li][/ul]

Concrètement pour migrer depuis l’ancienne version vers la nouvelle :

[code]# rm /usr/local/sbin/fix-aptitude-dependencies

# aptitude install debianutils libappconfig-perl libreadonly-perl libreadonly-xs-perl deborphan ncurses-bin

# wget [https://github.com/syam44/fix-aptitude-dependencies/raw/master/fix-aptitude-dependencies.deb](https://github.com/syam44/fix-aptitude-dependencies/raw/master/fix-aptitude-dependencies.deb)

# dpkg -i fix-aptitude-dependencies.deb

# rm fix-aptitude-dependencies.deb[/code]

Pendant l’installation du paquet avec dpkg il vous avertira d’un conflit concernant le fichier de configuration. Il faut installer la version du responsable du paquet (Y).  
Ensuite, recopiez à la main les différentes sections de votre ancienne configuration (/etc/apt/fix-aptitude-dependencies.conf.dpkg-old) dans le nouveau fichier (/etc/apt/fix-aptitude-dependencies.conf). Je pense que le nouveau format est assez explicite, il ne devrait pas y avoir besoin d’expliquer en détails mais en cas de problème n’hésitez pas à demander. Vous pouvez aussi regarder [mon fichier de config](https://www.debian-fr.org/aptitude-gestion-des-dependances-et-orphelins-t35575.html#p359323) pour prendre modèle dessus.

Promis, c’est la dernière fois que je change le format du fichier de config, mais malheureusement le passage à perl ne m’a pas laissé beaucoup de choix.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/92 "2016-02-21T12:48:15Z")

</div>

Fait mais j’attends qq mn pour tester car j’ai un cron qui doit être effectué au quart (rien à voir avec fix).  
Réponse après test.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/93 "2016-02-21T12:48:15Z")

</div>

Test concluant, essai avant et après reboute = no problem ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/94 "2016-02-21T12:48:15Z")

</div>

Super. De mon côté j’envisage de faire un vrai dépôt Debian à mettre dans le sources.list, mais c’est plus compliqué que prévu à héberger sur github (idéalement j’aurais aimé que le dépôt soit versionné en même temps que tout le reste). Ça va venir… ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/95 "2016-02-21T12:48:15Z")

</div>

> [@](#):
>
> Super. De mon côté j’envisage de faire un vrai dépôt Debian à mettre dans le sources.list, mais c’est plus compliqué que prévu à héberger sur github (idéalement j’aurais aimé que le dépôt soit versionné en même temps que tout le reste). Ça va venir… ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

😃 Pas mal ce neologisme, je retiens et je cultiverai à l’occasion 😃

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/96 "2016-02-21T12:48:15Z")

</div>

> [@](#):
>
> Pas mal ce neologisme, je retiens et je cultiverai à l’occasion

Il est pourtant très courant en informatique. 😉  
Versionner / versionnage / …

---

<div class="post-metadata">

**Author:** ![martin\_mtl](https://www.debian-fr.org/user_avatar/www.debian-fr.org/martin_mtl/32/3946_2.png) [@martin\_mtl](https://www.debian-fr.org/u/martin_mtl)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/97 "2016-02-21T12:48:21Z")

</div>

Ce sont en effet des termes informatiques tout à fait corrects et acceptés :

1. versionner : [http://www.gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id\_Fiche=8361519](http://www.gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8361519)
2. versionnage : [http://www.gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id\_Fiche=8361520](http://www.gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8361520)

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/98 "2016-02-21T12:48:22Z")

</div>

Je regrette Martin mais je n’ai trouvé ce verbe dans aucun dictionnaire français de France.  
Qu’il soit accepté au Québec, je comprends, qu’il soit présent dans des ouvrages informatiques, je comprends aussi mais je suis preneur si vous m’indiquez un dictionnaire français qui l’accepte.  
Il est fort possible qu’il “entre” prochainement chez Larousse, Robert ou Littré mais je ne l’y ai pas encore vu.  
Même Reverso ne connait pas. Wictionnaire non plus.  
Par contre, on trouve “partitionner” avec la mention 'informatique’  
Cela dit, je n’en fais pas un combat et je trouve ce verbe parfaitement digne de figurer.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/99 "2016-02-21T12:48:24Z")

</div>

Salut,

Cool de faire du perl. J’aurais juste 3 remarques :  
[ul]  
[li]pourquoi tu n’utilise pas die ?[/li]  
[li]pourquoi tu fait une méthode trimArrayLR là où un

```auto

```

suffirait[/li]  
[li]j’aurais préféré yaml comme format de fichier de configuration[/li][/ul]

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:48 UTC](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192/100 "2016-02-21T12:48:25Z")

</div>

> [@](#):
>
> pourquoi tu n’utilise pas die ?

La sortie est trop verbeuse à mon goût.

> [@](#):
>
> pourquoi tu fait une méthode trimArrayLR

De mémoire, au départ j’avais besoin du chomp pour nettoyer les résultats de qx{} (si je ne m’abuse ta regex ne traite pas les retours chariot ?) et je déteste me répéter donc j’ai bêtement collé ça dans une fonction que j’ai réutilisée partout.  
Et puis honnêtement c’est pas super lisible pour moi ta suggestion, j’ai encore un peu de mal avec les “perlismes” trop compacts.

> [@](#):
>
> j’aurais préféré yaml comme format de fichier de configuration

J’avoue que je ne connais pas vraiment YAML. Je voulais pouvoir intégrer facilement des commandes shell dans le truc (donc il me fallait des variables multilignes qui ne nécessitent pas d’échapper des caractères à tout va) et AppConfig faisait l’affaire avec sa syntaxe HEREDOC, du coup j’ai pas cherché plus loin. ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel")

[Page précédente](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192.md?page=4)

[Page suivante](https://www.debian-fr.org/t/script-aptitude-gestion-des-dependances-et-orphelins/34192.md?page=6)
