Ports, Nettoyer

Un article de Diablotins.org.


Image:brush.png

Sommaire

Synopsis

Après de multiples essais, installations et dé-installation de ports, vous avez le sentiment que votre système est encombré de bibliothèques obsolètes, de ports inutiles etc. Pour passer un grand coup de balais dans le système, la plus grande attention est de rigueur. Les quelques outils qui suivent vont vous guider dans ce nettoyage.

Éliminer les intrus

Dans un premier temps, débarrassez vous des intrus.

Supprimer un port

La méthode la plus directe est d'appeler make à partir du catalogue des ports:

cd /usr/ports/www/firefox
make deinstall

Toutefois, je vous recommande un outil plus évolué, pkg_delete:

pkg_delete firefox-1.5.0.4,1
pkg_delete www/firefox-1.5.0.4,1

ou plus simplement, Ă  l'aide de \:

pkg_delete firefox\*    C'est à dire «firefox*»

Supprimer toute une branche de ports

La méthode précédente présente des inconvénients, elle va dans certains cas, créer des orphelins. Un port racine apporte souvent avec lui d'autres ports, qui ne seront pas supprimés par cette méthode.
Demandez de supprimer le port, ceux qui en dépendent et les répertoires vides:

pkg_delete -idR firefox\*

Ou vérifiez ce que pkg_delete va faire avant de procéder:

pkg_delete -indR firefox\*

Pour contrôler la présence d'orphelins, installez le port sysutils/pkg_cutleaves et lancez le:

pkg_cutleaves

La liste de ports présentées correspond aux ports «racine», ceux dont personne ne dépend; vous trouverez là vos logiciels et méta-ports. Par contre, s'il vous est présenté une bibliothèque ou un port isolé, n'hésitez pas, supprimez le.
Pour éviter d'avoir à répondre «no» à chaque fois aux ports connus, enregistrez un fichier /usr/local/etc/pkg_leaves.exclude:

pkg_cutleaves -gc

Et utilisez le:

pkg_cutleaves -xc

A chaque fois que vous supprimez un port, vous risquez de créer un nouvel orphelin, c'est pourquoi pkg_cutleaves propose de recommencer une fois le processus terminé.
Pour l'éviter, supprimez le port et ses dépendances:

pkg_cutleaves -xcR

Nettoyer le système

Une fois vos ports débarrassés des intrus, nettoyez la base:

portsclean -CDDLPP

Soit, les répertoires de compilation, les fichiers paquetages téléchargés des ports qui ne sont plus installés, les bibliothèques isolées et vos propres paquetages.
Vous retrouverez les bibliothèques obsolètes dans /usr/local/lib/compat/pkg.

Réparer le système

Nous y sommes presque, il reste à contrôler néanmoins les bibliothèques une à une, celle qui font référence à une bibliothèque inexistante, celles qui ne sont plus référencés et les dommages créés par les manœuvres précédentes. Pour cela, utilisons le port sysutils/libchk:

libchk

Cet outil vous reporte deux types d'anomalies:
-Bien entendu, vous re-trouverez là toutes les bibliothèques déplacées par portsclean précédemment .-

  • Unreferenced library:

Les bibliothèques qui ne sont plus référencées. Contrôler /etc/libmap.conf, pour vérifier quel sont les bibliothèques déroutées.
Ensuite déplacez les bibliothèques indiquées, vérifiez le bon fonctionnement de votre système avant de les supprimer définitivement.

  • Unresolvable link(s) found in:

Aïe. Ces bibliothèques demandent plus d'attention.
Vérifiez qu'elle ne se trouve pas aussi dans la catégorie précédente.
Ensuite, si c'est une bibliothèque égarée, supprimez la.
Mais, en général, la référence introuvable correspond à des dommages collatéraux:

/libexec/ld-elf.so.1: Shared object "libgpg-error.so.1" not found, required by "libgpgme.so.15"

Vous avez deux solutions. Plus long mais plus sûr, réinstallez le port et les ports qui en dépendent:

portupgrade -fR libgpg-error

En connaisseur, vous savez déterminer quels ports dépendent de ce dernier. Dans le cas de libgpg-error, ils sont nombreux; par exemple centericq, kde.
Réinstallez le port et ses dépendances:

portupgrade -fr centericq

En savoir plus

Le professeur Dru Lavigne vous en dit plus.

Récupérée de « http://diablotins.org/index.php/Ports%2C_Nettoyer »
Projets :
Boîte à outils