web-dev-qa-db-fra.com

Retirer en toute sécurité les paquets * non utilisés *

Après diverses expériences sur les débutants sous Linux, mon système Kubuntu n'arrête pas de me dire qu'il existe des paquets inutilisés qui ne sont plus nécessaires et qui devraient être supprimés. Cela me semble une bonne idée.

Voici ce que "apt-get -s autoremove" propose de supprimer:

  freeglut3 fs-uae fs-uae-launcher gir1.2-gtksource-3.0 hwdata ipython kmymoney-common libalkimia4 libexosip2-11 libglee0d1 libgnome-desktop-2-17 libgtksourceview-3.0-1 libgtksourceview-3.0-common
  libgwengui-cpp0 libgwengui-qt4-0 liblinphone5 libmediastreamer-base3 libofx6 libosip2-11 libosp5 libpanel-applet0 libportmidi0 libpyside1.2 libsdl-image1.2 libsdl-mixer1.2 libsdl-ttf2.0-0
  libsensors-applet-plugin0 libshiboken1.2 libsmpeg0 linux-headers-3.19.0-15 linux-headers-3.19.0-15-generic linux-image-3.19.0-15-generic linux-image-extra-3.19.0-15-generic meld python-dulwich
  python-fastimport python-numpy python-opengl python-pexpect python-pygame python-pyside python-pyside.phonon python-pyside.qtcore python-pyside.qtdeclarative python-pyside.qtgui python-pyside.qthelp
  python-pyside.qtnetwork python-pyside.qtopengl python-pyside.qtscript python-pyside.qtsql python-pyside.qtsvg python-pyside.qttest python-pyside.qtuitools python-pyside.qtwebkit python-pyside.qtxml
  python-simplegeneric python-svn

Pour la plupart d'entre eux, je ne sais pas dans quel contexte je les ai installés. Mais au moins un de ces packages n'est certainement PAS utilisé: L'émulateur "fs-uae" a été manuellement installé par moi et j'ai l'intention de continuer à l'utiliser.

Pourquoi apt-get propose-t-il de supprimer le paquet "fs-uae"? Existe-t-il un moyen de nettoyer sans rien casser et sans enlever quelque chose dont j'ai besoin?

2
Silicomancer

Comme vous le savez probablement déjà, les packages sous Linux peuvent spécifier des "dépendances", c’est-à-dire d’autres packages à installer pour que ce package fonctionne réellement. Ces dépendances sont résolues de manière récursive, c'est-à-dire que les dépendances de vos packages sont également installées. De cette façon, des méta-packages peuvent exister pour installer un ensemble complet de logiciels. Les exemples courants sont libreoffice (pour la suite bureautique) ou kde-full pour l’ensemble du bureau KDE.

Quand apt (gestionnaire de paquets Debian) installe un paquet, il marque toutes les dépendances comme installé automatiquement. De cette façon, il peut faire la distinction entre les paquets explicitement demandés par l'utilisateur et les paquets extraits simplement en tant que dépendances (l'utilisateur ne s'en souciant probablement pas du tout).

apt-get autoremove recherche les packages marqués comme installés automatiquement, mais qui ne sont plus nécessaires aux packages installés manuellement. Ce sont souvent des versions plus anciennes des bibliothèques (lorsque la version de la bibliothèque est dans le nom du paquet permettant à différentes versions de coexister, par exemple libavcodec54 et libavcodec56) ou des paquets supprimés du référentiel, mais certaines applications utiles sont parfois extraites comme dépendance et est ensuite supprimé. Cela se produit surtout lorsque vous indiquez à apt d'abord d'installer les paquetages recommandés ou suggérés, puis de le configurer pour qu'il ne récupère pas ces paquetages en tant que dépendances.

Pour supprimer un package de la liste des packages à supprimer, marquez-le comme installé manuellement. Vous pouvez le faire en utilisant apt-mark:

apt-mark manual <package_name>

ou aptitude (les commandes suivantes sont équivalentes, n'en utilisez qu'une):

aptitude unmarkauto <package_name>
aptitude install <package_name>
aptitude install <package_name>&m

Enfin, pour obtenir un contexte lorsque ces packages particuliers ont été installés, vous pouvez rechercher leurs noms dans les fichiers /var/log/apt/history.log. Ces journaux sont pivotés (compressés et placés dans un fichier séparé) tous les mois; pour obtenir l'archive complète, vous pouvez exécuter (l'ordre ne sera pas conservé):

cat /var/log/apt/history.log > /tmp/full-archive
zcat history.log* >> /tmp/full-archive
3
Mirosław Zalewski