web-dev-qa-db-fra.com

Utiliser apt-get pour supprimer les paquets et les dépendances

J'ai récemment lu beaucoup de questions/réponses/opinions sur la suppression de paquets et de dépendances. Il y a beaucoup de façons différentes de le faire, certaines étant trop compliquées et d'autres insuffisantes/incomplètes. Je veux demander ici, à un endroit donné, ce que les autres pensent, c’est la meilleure façon de supprimer un paquet et tout ce qui inclut les configurations, les dépendances et les configurations des dépendances. Je vous proposerai également ma méthode issue de nombreux essais et erreurs ainsi que de l'arrachage de cheveux.

2
Brian Huggins

Avertissement: Cela peut supprimer les paquetages que vous pourriez toujours vouloir. Si cela se produit, réinstallez-les simplement. Mais honnêtement, lorsque vous installez/désinstallez quelque chose qui va apporter de gros changements à votre système, pourquoi ne pas commencer par la sauvegarde.

La méthode la plus complète que j'ai jamais mise au point pour supprimer complètement un paquet PLUS ses dépendances PLUS toutes les configurations, y compris celles des dépendances et faire un petit ménage, est la suivante: PACKAGENAME est le paquet principal à enlever:

  • Déconnectez-vous du bureau et appuyez sur Ctrl + Alt + F1, puis connectez-vous à TTY1 et exécutez les commandes suivantes:

    Sudo apt-get purge <PACKAGENAME>
    Sudo apt-get purge $(apt-cache depends <PACKAGENAME> | awk '{ print $2 }' | tr '\n' ' ')
    Sudo apt-get autoremove
    Sudo apt-get update
    Sudo apt-get check
    Sudo apt-get -f install
    Sudo apt-get autoclean
    
  • Redémarrer si nécessaire

    Sudo shutdown -r now
    

Alors que se passe-t-il dans la deuxième ligne? Les pipes prennent la sortie d'apt-cache et la reformatent. Le premier tube awk '{print $ 2}' prend la sortie d'apt-cache dépend et affiche, ou "echo", uniquement la deuxième colonne. Sans cela, vous auriez également dans la liste une autre colonne qui est le type de dépendance, c'est-à-dire "dépend", "recommande", etc. Ensuite, le deuxième tuyau tr '\ n' '' prend ce résultat et supprime ou tronque (par conséquent tr) les nouvelles lignes et les remplace par un espace séparant les noms. Tout cela retourne une liste "délimitée par des espaces" des noms de tous les packages de dépendance de PACKAGENAME compatibles avec le format, à utiliser avec plusieurs entrées de package pour purger l'option-commande.

Cela fonctionne particulièrement bien pour les méta-paquets. Je lance la dernière commande "Sudo apt-get -f install" à la fin pour rechercher d'éventuels paquets cassés et les réparer après avoir effectué autant de modifications en même temps. Je le fais surtout chaque fois que j'ajoute un "DE" et que je veux revenir en arrière. Récemment, j’ai utilisé cela après avoir installé GNOME et il a même corrigé le fait que seule la purge de Gnome avec le retrait automatique après avoir laissé mon GRUB changé et laissé l’option de connexion dans le DM. Lorsque j’ai essayé lubuntu-desktop, il a corrigé certains conflits et supprimé les entrées de la connexion DM laissées par la purge et le retrait automatique.

Une méthode similaire qui fonctionne bien, est probablement plus sûre, mais ne comprend toujours pas:

Sudo apt-get --purge autoremove PACKAGENAME

Ce qui peut ou peut ne pas avoir besoin d'être suivi avec:

Sudo apt-get update
Sudo apt-get check
Sudo apt-get -f install
Sudo apt-get autoclean
4
Brian Huggins

J'utilise aussi aptitude purge pour cela:

Sudo aptitude purge <PACKAGENAME>

Cette commande

  • supprime les dépendances
  • sans supprimer les dépendances qui sont aussi des dépendances d'un autre paquet installé,
  • mais je ne suis pas sûr s'il supprime les configs des dépendances.
0
Yuri P.