Ports, Nettoyer
Un article de Diablotins.org.
|
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
