Debfoster - Conservez uniquement les packages essentiels dans Debian et Ubuntu
Aujourd'hui, nous allons découvrir un utilitaire moins connu mais utile pour Debian et ses dérivés tels qu'Ubuntu et les variantes d'Ubuntu comme Linux Mint. Dites bonjour à "Debfoster" - un utilitaire de ligne de commande permettant de conserver uniquement les packages essentiels et de supprimer les autres packages qui ne sont plus nécessaires. Ainsi, vous pouvez garder un système propre et minimal à tout moment. L'application debfoster est un programme wrapper pour les gestionnaires de paquets apt et dpkg. Il maintient une liste des packages installés qui ont été explicitement demandés plutôt qu'installés en tant que dépendance.
Lorsque vous l'exécutez pour la première fois, il créera une liste des packages installés et l'enregistrera dans un fichier nommé keepers dans le répertoire /var/lib/debfoster/. Debfoster utilisera cette liste pour détecter les packages qui ont été installés uniquement parce que d'autres packages en dépendaient. Si l'une de ces dépendances change, debfoster en prendra note et vous demandera si vous souhaitez supprimer l'ancien paquet. De cette façon, il vous aide à maintenir un système propre avec les packages essentiels de votre choix.
Conservez uniquement les packages essentiels dans Debian et Ubuntu en utilisant Debfoster
Debfoster est disponible dans les référentiels par défaut. L’installation ne sera donc pas un gros problème. Exécutez la commande suivante pour installer Debfoster sur n'importe quel système basé sur Debian :
sudo apt install debfoster
Une fois installé, nous devons créer une liste des packages installés en exécutant la commande suivante :
sudo debfoster -q
La commande ci-dessus ajoutera les packages actuellement installés dans le fichier keepers du répertoire /var/lib/debfoster/. Vous pouvez modifier ce fichier pour supprimer les packages que vous ne souhaitez plus installer sur votre système.
Voici le contenu de mon dossier de gardiens.
cat /var/lib/debfoster/keepers
Vous ne devez pas supprimer de ce fichier les packages importants liés au système, tels que le noyau Linux, grub, la base Ubuntu, le bureau Ubuntu, etc. Sauvegardez également les fichiers de configuration importants que vous avez modifiés manuellement.
Maintenant, forcez l'utilitaire debfoster à supprimer les packages qui ne sont pas répertoriés dans le fichier keeper. Pour ce faire, exécutez :
sudo debfoster -f
Debfoster supprimera tous les packages qui ne sont pas disponibles dans le fichier keeper ainsi que leurs dépendances.
Il installe également tous les paquets manquants qui semblent manquer, obligeant ainsi votre système à se conformer à la base de données debfoster.
Et vous pouvez ensuite exécuter la commande suivante de temps en temps après chaque fois que vous ajoutez/supprimez des packages pour vérifier s'il existe des packages orphelins ou des dépendances indésirables qui doivent être supprimés.
sudo debfoster
Si vous avez installé/supprimé des packages, vous verrez une sortie ressemblant à celle ci-dessous. Comme vous le voyez dans le résultat, le package Screen n'est pas répertorié dans ma liste de gardiens. Parce que je l'ai installé après avoir créé la liste des gardiens. Alors, Debfoster me demande si je veux garder ça ou non. Si vous ne savez pas quoi faire, tapez H pour afficher la section d'aide.
Keep screen? [Ynpsiuqx?], [H]elp: H
Yes Keep screen. [default]
No Delete screen.
Prune Delete screen and the packages it is keeping installed.
Skip Skip this question.
Help Print this message.
Info or ? Show information about screen.
Undo Undo last response.
Quit Exit without removing packages.
Exit Remove unwanted packages and exit.
Keep screen? [Ynpsiuqx?], [H]elp:
Debfoster affichera toutes les options possibles. Tapez Y si vous ne souhaitez pas supprimer les packages. Le package screen sera désormais ajouté au fichier keeper et Debfoster ne le supprimera pas dans les transactions futures, à moins que vous ne l'ayez supprimé manuellement vous-même à l'aide de la commande "apt-get remove screen". Tapez N pour supprimer le package d'écran. Tapez P pour supprimer l'écran et les packages qu'il maintient installés. Tapez info ou ? pour afficher les détails du package. Q pour quitter sans supprimer le package. Et tapez E pour supprimer les packages et quitter.
Affichage des packages dans la liste des Keepers
Pour afficher la liste des packages dans la base de données debfoster, exécutez :
debfoster -a
Voici la liste des packages de mon bureau Ubuntu 16.04 LTS.
The following packages are on the keeper list:
account-plugin-aim brasero debfoster deja-dup-backend-gvfs dialog firefox-locale-en gdebi gir1.2-webkit-3.0 git hyphen-en-us indicator-multiload
language-pack-gnome-en libarchive-extract-perl libcpan-meta-perl libmodule-build-perl libmodule-pluggable-perl libpackage-constants-perl libpod-latex-perl
libreoffice-help-en-us libreoffice-style-human libterm-ui-perl libtext-soundex-perl libvisual-0.4-plugins linux-generic linux-headers-4.4.0-15-generic
linux-image-extra-4.4.0-15-generic myspell-en-au myspell-en-gb myspell-en-za mythes-en-us oneconf openoffice.org-hyphenation openssh-server python-pip python3-smbc
rhythmbox-plugin-cdrecorder rhythmbox-plugin-magnatune samba-common screen shutter ssh-askpass-gnome telepathy-idle thunderbird-locale-en-us ubuntu-desktop
ubuntu-minimal ubuntu-sso-client-qt ubuntu-standard ubuntu-wallpapers-wily wbritish xserver-xorg-video-cirrus xserver-xorg-video-mach64 xserver-xorg-video-mga
xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
Utiliser un autre fichier Keeper
Par défaut, debfoster conservera les packages installés dans le fichier /var/lib/debfoster/keepers. Vous pouvez cependant spécifier une autre base de données Debfoster (fichier Keepers, bien sûr) en utilisant l'indicateur -k comme ci-dessous.
debfoster -k <path-to-keeper-file>
Affichage des packages orphelins
Vous n'avez pas toujours besoin d'exécuter la commande "sudo debfoster" pour rechercher les packages orphelins. Vous pouvez simplement utiliser l'indicateur -s comme ci-dessous pour voir s'il y a des packages orphelins.
$ debfoster -s
The following packages have been orphaned:
tmux
Comme vous le voyez dans le résultat ci-dessus, j'ai un package orphelin. S'il s'agit d'un package nécessaire et que nous ne voulons pas que Debfoster le supprime, nous pouvons simplement l'ajouter au fichier keeper en exécutant la commande suivante :
sudo debfoster
Il vous demandera de conserver ou non tmux. Si vous conservez le tmux dans le fichier keeper, tapez simplement Y.
Keep tmux? [Ynpsiuqx?], [H]elp:Y
Alternativement, vous pouvez modifier manuellement le fichier keeper et ajouter tmux dans la liste.
sudo vi /var/lib/debfoster/keepers
Ajoutez-y du tmux.
[...]
tmux
Tapez :wq pour enregistrer et quitter le fichier. Désormais, vous ne verrez aucun paquet orphelin lors de l'exécution de la commande "debfoster -s".
Veuillez noter qu'ici, un paquet orphelin désigne un paquet qui n'est pas mentionné dans la base de données debfoster. Cela ne veut pas dire que le package n’est absolument pas nécessaire. Par exemple, les utilitaires screen et tmux sont très utiles. Nous pouvons donc les ajouter à la base de données debfoster.
Ajouter/supprimer des packages
Puisque debfoster est un wrapper pour les gestionnaires de packages apt-get et dpkg, vous pouvez également l'utiliser pour ajouter ou supprimer des packages.
Pour installer un package, exécutez :
sudo debfoster screen
Debfoster exécutera maintenant apt-get pour vous et installera le package spécifié.
Pour supprimer un package, placez simplement un moins (-) directement après son nom, comme ci-dessous.
$ sudo debfoster screen-
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
screen*
0 upgraded, 0 newly installed, 1 to remove and 608 not upgraded.
After this operation, 972 kB disk space will be freed.
Do you want to continue? [Y/n]
Trouver des dépendances
Pour répertorier tous les packages dont dépend un package, utilisez l'indicateur -d.
debfoster -d screen
Et, pour lister tous les packages de la base de données debfoster qui dépendent du package donné, utilisez l'indicateur -e comme ci-dessous.
debfoster -e screen
Pour plus de détails, reportez-vous aux pages de manuel.
man debfoster
Comme vous pouvez le constater, Debfoster vous aide à garder une trace de ce que vous avez installé et à supprimer tous les autres packages qui ne sont pas requis. Encore une fois, je vous préviens : vous devez utiliser cette application avec beaucoup de prudence. Ne supprimez pas les packages importants liés au système tels que la base Ubuntu, grub, le noyau actuel, etc. Si vous le faites, vous risquez de vous retrouver avec un système inutilisable.
Lecture suggérée :
- Supprimer les fichiers de configuration inutiles sur les systèmes basés sur Debian
- Comment rechercher et supprimer les packages inutilisés sous Linux