Connaître les paquets utilisés
De Asso Val Libre
Objectif
Sur une machine opérationnelle, qui fonctionne normalement, identifier les logiciels/«paquets» nécessaires justement à son bon fonctionnement et donc a contrario, identifier ceux qui ne sont pas nécessaires et qui pourraient donc être nettoyés.
Avec un système «linux-like», une ligne de commande peut suffire...
Il faut ensuite identifier la fonction et l'utilité de chaque paquet ainsi listé et décider de garder ou supprimer le paquet/logiciel concerné.
Par exemple, sur un serveur sans utilité graphique, on peut retirer les paquets xserver-* ou encore wmaker, lightdm, ...
Chaque paquet retiré est
- un allégement de la charge système (pas de petites économies)
- une diminution des risques en terme de sécurité
- une simplification pour les prochaines mises à jour éventuelles (moins de logiciels, d'interactions à considérer)
Méthode A
ps aux | awk '{print $11}' | grep ^/usr | sort | uniq | xargs dpkg -S | awk -F: '{print $1}' | sort | xargs dpkg -l
Écriture «décomposée» :
ps aux | awk '{print $11}' | grep ^/usr | sort | uniq | xargs dpkg -S | awk -F: '{print $1}' | sort
e.g. (résultat)
accountsservice acpid apache2-bin at at-spi2-core cpufreqd cron . . . wmaker xserver-xorg-core
Remarques
- Le moment de l'exécution de la commande n'est pas anodin.
- Tous les services ou logiciels utiles sur une machine ne sont pas actifs en permanence.
- Il faut donc réaliser plusieurs requêtes, à des moments différents (cron ?? ;-)
Méthode B
Plus exhaustive... avec globalement le même principe...
(!)sur une seule ligne... lsof | grep /usr | awk '{print $10}' | sort | uniq | xargs dpkg -S | awk -F : '{print $1}' | sort | uniq
lsof # liste des fichiersouvert | grep /usr # dont on ne garde que les fichiers /usr/... (système) | awk '{print $10}' # le nom est stocké dans le 10ème champs de l'affichage | sort | uniq # Nettoyage doublons | xargs dpkg -S # à quel paquet appartient ce nom ? | awk -F : '{print $1}' # le nom du paquet est le premier champs (en considérant le séparateur ':') | sort | uniq # Nettoyage doublons
Conclusion
ATTENTION ! À ne pas scier la branche sur laquelle, ou retirer le tapis sur lequel, repose votre machine ou votre serveur !!