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 activités de chasse, je ne trouve rien de plus utile que Comment inverser la commande sudo apt get install , ce 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 une 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), libevolution: 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), metacity: amd64 (2.34.1-1ubuntu11, automatique), nautilus: amd64 (3.4.2-0ubuntu6, automatique), libcompizconfig0: amd64 (0.9.7.0 ~ bzr428-0ubuntu6, automatique), 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-docs: amd64 (12.04.6 , automatique), python-mako: amd64 (0.5.0-1, automatique),
À tous ceux qui ont suggéré autoremove
: je ne sais pas trop pourquoi, mais je n’ai reçu qu’un autre paquet relatif à Python (python-keybinder ou quelque chose du genre) comme "inutile" et c’est tout ce que le retrait automatique a pu supprimer.
Entre l'installation et la désinstallation, seule la modification majeure a été installée xubuntu-restricted-extras
.
sudo apt-get install -s package
où-s
dénote une simulation etpackage
sera remplacé par le nom du logiciel approprié.cardapio-gnomepanel
paquet?apt-get remove carpadio
emporté aussi.autoremove
ne fonctionne pas pour vous. D'une manière ou d'une autre, vous avez marqué tous les paquets comme installés manuellement maintenant ou il y a un malentendu clair. C'est très simple: ilapt-get autoremove
suffit de supprimer tous les paquets marqués installés automatiquement sans raison de les avoir maintenant. Si cela ne fonctionne pas pour vous, je pense que vous avez modifié quelque chose sur votre système dont vous n'avez pas parlé dans votre question.Réponses:
Fondamentalement, vous devrez
apt-get remove
(ou apt-get purger) le paquet et l' exécuterapt-get autoremove
après cela, pour qu'il retourne l'installation depackage-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 questionsudo apt-get purge package-one
(purges) Enlève une, mais font courir ça!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:
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 nécessaire! C'est juste pour démontrer qu'APT est intelligent pour vous parler de vos paquets inutiles!
sudo apt-get autoremove --purge
supprime (purge) cesPlus d'information
Documentation officielle sur
autoremove
laapt-get(8)
page de manuel:Quelle est la bonne façon de supprimer complètement une application?
la source
autoremove
.autoremove
n'a pas aidé.sudo apt-get update
il suffisant?Lorsque vous souhaitez supprimer un package et ses dépendances installés à ce moment-là, vous devez utiliser:
mais pour annuler des
apt
actions, vous pouvez utiliser unapt-undo
script. C'est un script simple qui peut annuler lesapt
actions effectuées dans Ubuntu. Il est à noter que ce script ne peut fonctionner que si vous l'utilisez au lieu d'apt-get
installer / mettre à niveau / supprimer / purger / rétrograder vos packages.Pour installer
apt-undo
dans Ubuntu, exécutez les commandes suivantes dans le terminal:usage:
Pour annuler, les
aptitude
actions ci-dessus exécutent les commandes suivantes dans le terminal:la source
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:
Vous pouvez donc utiliser cette option pour purger tous les packages que vous avez installés par inadvertance, en indiquant la ligne appropriée de votre fichier journal:
(J'ai utilisé à la
perl
placesed
parcesed
qu'utilise un type d'expression régulière qui ne supporte pas les correspondances non-gloutonnes, ce qui était le moyen le plus simple de construire ce dont j'avais besoin)la source
apt
journal dans un nouveau fichier, puisperl -pe 's/\(.*?\)(, )?//g' /path/to/apt-history.log
je l'ai appliqué: Ensuite, tout ce que j'ai fait a été d'ajouter la sortie au débutsudo apt-get remove
et j'ai été prêt à partir!Après avoir supprimé le forfait, et vous pouvez le supprimer complètement en ajoutant --purge, pour,
apt-get remove --purge <package>
il devrait vous donner un message que les paquets de la bibliothèque se désengageant en ont été installés automatiquement et ne sont plus nécessaires, à quel point vous pouvez exécuterapt-get autoremove
à retirez-les.la source
Suivre le
sudo apt-get purge packagename
avecÀ moins qu'il s'agisse d'un méta-paquet, cela devrait en prendre soin.
Voir également la FAQ sur Comment puis-je supprimer manuellement tous les fichiers Cardapio? .
la source
new_file.txt
perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
sudo apt-get remove
[coller le contenu du presse-papier 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 le perl entre en jeu. Oui, il existe de meilleures méthodes (plus efficaces) - mais j’ai fait cela, c’est facile à comprendre et ça marche.
la source
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 les paquets, sauf si vous spécifiez
-o APT::Suggests-Important=0 -o APT::Recommends-Important=0
Il est plus fiable de regarder 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:
https://unix.stackexchange.com/a/236711
la source
Pour annuler la dernière installation d'apt, vous pouvez également utiliser quelque chose comme ceci:
Cela récupérera la dernière installation apt de l’historique et purgera tous les paquets installés ici.
Vous pouvez créer une fonction appelée aptpurgelastinstall pour l'avoir toujours à portée de main (ajoutera le code à ~ / .bashrc):
Maintenant, il vous suffit de taper aptpurgelastinstall dans le shell pour rétablir la dernière installation.
la source
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.
la source
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
unity8-desktop-session-mir
. Je sais que c'est un gros. Il a tiré 233 paquets avec lui.En utilisant
autoremove
je suis enlevé seulement 34 d'entre eux. Le fait est que lors de l'unity8-desktop-session-mir
installation, deux packages (python3-aptdaemon.pkcompat
etevolution-data-server-online-accounts
) ont été supprimés . C'est indiqué dans/var/log/apt/history.log
, après laInstall
section.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 la
autoremove
deuxième étape n'est pas nécessaire, comme je l'ai publié à la quatrième étape.la source