J'ai installé Carpadio sur mon installation Xubuntu (un Live USB), qui a ensuite extrait plus de 50 paquets, je suppose, du côté Ubuntu du référentiel. Maintenant, je voudrais annuler cela. Cependant, pour toutes mes recherches, je ne trouve rien de plus utile que Comment inverser la commande sudo apt get install , qui suggère simplement apt-get purge
. Ce n'est pas utile car tout ce qu'il fait est de supprimer 2 paquets (carpadio et carpadio-gnomepanel).
/var/log/apt/history.log
a la liste de tous les packages qui ont été installés avec cette commande. Je me demandais donc s'il existait un moyen facile de les supprimer tous ? Sinon, je peux simplement réinstaller, c’était une nouvelle installation de toute façon, mais je suis curieux.
Un petit échantillon de l'historique (1/5-1/10 de la liste complète)
Ligne de commande: apt-get install cardapio-gnomepanel
Installation: libdbusmenu-qt2: AMD64 (0.9.2-0ubuntu1, automatique), python-packagekit: AMD64 (0.7.2-4ubuntu3, automatique), cups-pk-helper: AMD64 (0.2.1.2-1ubuntu0) .1, automatique), géoclue: AMD64 (0.12.0-1ubuntu12, automatique), unité: AMD64 (5.18.0-0ubuntu1, automatique), imprimantes-indicateurs: AMD64 (0.1.6-0ubuntu1, automatique), libolution: AMD64 (3.2.3-0ubuntu6, automatique), libqt4-déclarative: AMD64 (4.8.1-0ubuntu4.3, automatique), libmtp9: AMD64 (1.1.3-1ubuntu0.1, automatique), tracker-miner-fs: AMD64 ( 0.14.0-2ubuntu1, automatique), gir1.2-rb-3.0: AMD64 (2.96-0ubuntu4.2, automatique), python-aptdaemon.pkcompat: AMD64 (0,43 + bzr805-0ubuntu7, automatique), gnome-media: AMD64 (3.4.0-0ubuntu3.1, automatique), métacité: AMD64 (2.34.1-1ubuntu11, automatique), nautilus: AMD64 (3.4.2-0ubuntu6, automatique), libcompizconfig0: AMD64 (0.9.7.0 ~ bzr428-0ubuntu6, automatic), compiz-plugins-default: AMD64 (0.9.7.12-0ubuntu1, automatique), libunistring0: AMD64 (0.9.3-5, automatique), libebackend-1.2-1: AMD64 (3.2.3-0ubuntu7, automatique), Ubuntu-do cs: AMD64 (12.04.6, automatique), python-mako: AMD64 (0.5.0-1, automatique),
À tous ceux qui ont suggéré autoremove
: Je ne sais pas pourquoi, mais je n’ai reçu qu’un autre paquetage lié à python (python-keybinder ou autre) comme "inutile" et c’est tout ce qu’autoremove a pu supprimer. .
Entre l'installation et la désinstallation, seul le changement majeur a été installé xubuntu-restricted-extras
.
Fondamentalement, vous devrez à apt-get remove
(ou à apt-get purger) le paquet et exécuter apt-get autoremove
après cela, pour qu’il annule l’installation de package-one
.
Regardons l'ensemble du processus:
Sudo apt-get install package-one
installe 50 dépendances avec le symbole "automatique", comme le montre l'extrait de journal de votre question
Sudo apt-get purge package-one
supprime (purge) un seul, mais ne lance ceci!
Toutes les actions d'installation suivantes (si vous en exécutez une) donneront un message d'information avec les packages qui ne sont plus nécessaires:
The following packages were automatically installed and are no longer required:
package-two package-three [...]
Use 'apt-get autoremove' to remove them.
Cette liste est fondamentalement juste une liste de tous les paquets marqués comme "automatiques" sans dépendance inverse sur eux. En d'autres termes, il n'y a aucune raison pour qu'ils soient installés en ce qui concerne la gestion des paquets.
Remarque: Aucune installation n'est requise! C'est juste pour démontrer que APT est bien avisé de vous parler de vos paquets inutiles!
Sudo apt-get autoremove --purge
supprime (purge) ces
Documentation officielle sur autoremove
de la page de manuel apt-get(8)
:
autoremove
est utilisé pour supprimer les packages qui ont été installés automatiquement pour satisfaire les dépendances d'autres packages et qui ne sont plus nécessaires.
Quelle est la bonne façon de supprimer complètement une application?
Lorsque vous souhaitez supprimer un package et ses dépendances installés à ce moment-là, vous devez utiliser:
Sudo apt-get purge package
Sudo apt-get --purge autoremove
mais pour annuler les actions apt
, vous pouvez utiliser le script apt-undo
. C'est un script simple qui peut annuler les actions apt
effectuées dans Ubuntu. Il est à noter que ce script ne peut fonctionner que si vous l'utilisez à la place de apt-get
pour installer/mettre à niveau/supprimer/purger/rétrograder vos packages.
Pour installer apt-undo
dans Ubuntu, exécutez les commandes suivantes dans le terminal:
Sudo add-apt-repository ppa:lkjoel/apt-undo
Sudo apt-get update
Sudo apt-get install apt-undo
usage:
apt-undo install yourpackages
apt-undo remove yourpackages
apt-undo purge yourpackages
apt-undo upgrade
apt-undo dist-upgrade
apt-undo install yourpackages=old.version
apt-undo install yourpackages=new.version
Pour annuler, les actions aptitude
ci-dessus exécutent les commandes suivantes dans le terminal:
apt-undo undo
Utilisez le pouvoir d'Unix. Prenez la ligne de fichier journal que vous avez et construisez une commande qui annulera ce qu’apt a fait. Par exemple:
$ echo 'Install: libdbusmenu-qt2:AMD64 (0.9.2-0ubuntu1, automatic), python-packagekit:AMD64 (0.7.2-4ubuntu3, automatic), cups-pk-helper:AMD64 (0.2.1.2-1ubuntu0.1, automatic),'|Perl -pe 's/ \(.*?\)//g; s/,//g; s/^Install: //'
libdbusmenu-qt2:AMD64 python-packagekit:AMD64 cups-pk-helper:AMD64
Vous pouvez donc utiliser cette option pour purger tous les packages que vous avez installés par inadvertance, à l'aide de la ligne appropriée de votre fichier journal:
$ dpkg -P $(echo '(full log line here)' | Perl -pe 's/ \(.*?\)//g; s/,//g; s/^Install: //')
(J'ai utilisé Perl
au lieu de sed
parce que sed
utilise un type d'expression régulière qui ne prend pas en charge les correspondances non-gourmandes, ce qui était le moyen le plus simple de construire ce dont j'avais besoin)
Une fois que vous avez supprimé le package et que vous pouvez le supprimer en ajoutant --purge, for, apt-get remove --purge <package>
, le système devrait vous indiquer que les packages de bibliothèque qu'il a extraits ont été installés automatiquement et ne sont plus nécessaires. Vous pouvez alors les exécuter. apt-get autoremove
pour les supprimer.
Suivez le Sudo apt-get purge packagename
avec
Sudo apt-get autoremove.
À moins qu'il s'agisse d'un méta-paquet, cela devrait en prendre soin.
Voir également la FAQ à l'adresse Comment puis-je supprimer manuellement tous les fichiers Cardapio? .
new_file.txt
Perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
Sudo apt-get remove
[collez le contenu du presse-papiers ici]Terminé.
Fondamentalement, nous devons formater la liste des paquets du journal apt en quelque chose que apt-get peut comprendre. Les parenthèses, les mots entre les deux et les virgules doivent être utilisés pour que Perl puisse jouer. Oui, il existe de meilleures méthodes (plus efficaces) - mais j’ai fait cela, c’est facile à comprendre et ça marche.
Techniquement, les opérations "supprimer" ou "supprimer automatiquement" ne sont pas "annulées" bien qu'elles puissent être faites pour que le travail soit assez bon la plupart du temps.
Par défaut, apt-get laissera des paquets, à moins que vous ne spécifiiez -o APT::Suggests-Important=0 -o APT::Recommends-Important=0
Il est plus fiable de jeter un œil à apt history.log
et de désinstaller tous les paquets installés. J'ai créé un petit script basé sur les nœuds pour faciliter le processus:
https://github.com/rolfen/apt-history
En outre, voici une autre approche plus manuelle pour "annuler" les modifications:
Je sais que la question est assez ancienne, mais je suis venu ici pour chercher de l'aide et je peux peut-être aider quelqu'un. J'ai eu une situation similaire à celle de @ Karthik-T après l'installation de unity8-desktop-session-mir
. Je sais que c'est un gros. Il a tiré 233 paquets avec lui.
En utilisant autoremove
je n’ai retiré que 34 d’entre eux. Le fait est que lors de l'installation de unity8-desktop-session-mir
, deux packages ont été supprimés (python3-aptdaemon.pkcompat
et evolution-data-server-online-accounts
). C'est indiqué dans /var/log/apt/history.log
, après la section Install
.
Pour annuler complètement l’installation de Unity 8, j’ai publié les informations suivantes:
Sudo apt-get purge unity8-desktop-session-mir
Sudo apt-get --purge autoremove
Sudo apt-get install python3-aptdaemon.pkcompat evolution-data-server-online-accounts
(il a supprimé 8 paquets liés à Unity 8)Sudo apt-get --purge autoremove
Cela ne supprimera pas absolument tout ce que vous avez installé auparavant, mais dans certains cas, cela suffit.
PS: peut-être que autoremove
à la deuxième étape n'est pas nécessaire, comme je l'ai émis à nouveau à la quatrième étape.
Si vous venez d'ajouter un ppa et que vous souhaitez revenir en arrière, vous devez suivre les étapes décrites ci-dessous. Comprenez que cela peut échouer lorsque vous avez installé d'autres packages que vous ne souhaitez pas désinstaller. Je suis sûr que cela peut être fait avec un script. Personnellement, je pense que cela devrait faire partie d’apt, et il devrait y avoir une meilleure administration des paquets installés en raison des dépendances et installés à la demande de l’utilisateur.
1) retirez le ppa de /etc/apt/sources.list Rappelez-vous le moment où vous avez ajouté le ppa. Si vous avez de la chance, vous n'avez pas besoin d'être précis.
2) Faites une liste des choses à réinstaller, à partir du moment où vous avez installé le PPA: cat /var/log/dpkg.log | grep 'upgrade'
3) Faites une liste des choses à supprimer, à partir du moment où vous avez installé le PPA: cat /var/log/dpkg.log | grep 'install'
4) supprimer tous les paquets de l'étape 3: Sudo apt-get remove {liste des paquets de l'étape 3}
5) réinstallez tous les paquets de l'étape 2: Sudo apt-get install --reinstall {liste des paquets de l'étape 2}
6) Si quelque chose ne va pas et que vous ne trouvez pas de solution, replacez le PPA et réinstallez tous les paquets des deux listes.