Instalé Carpadio en mi instalación de Xubuntu (un Live USB), que luego extrajo como más de 50 paquetes, supongo, del lado de Ubuntu del repositorio. Ahora me gustaría deshacer esto. Sin embargo, para toda mi búsqueda, no puedo encontrar nada más útil que ¿Cómo puedo revertir el comando sudo apt get install , que solo sugiere apt-get purge
? Esto no es útil ya que todo lo que hace es eliminar 2 paquetes (carpadio y carpadio-gnomepanel).
/var/log/apt/history.log
tiene una lista de todos los paquetes que se instalaron junto con ese comando. Entonces, me preguntaba si hay alguna manera fácil de eliminarlos a todos . De lo contrario, puedo reinstalar, de todos modos esta fue una instalación nueva, pero tengo curiosidad.
Una pequeña muestra del registro del historial (1 / 5-1 / 10 de toda la lista)
Línea de comandos: apt-get install cardapio-gnomepanel
Instalar: libdbusmenu-qt2: amd64 (0.9.2-0ubuntu1, automático), python-packagekit: amd64 (0.7.2-4ubuntu3, automático), cups-pk-helper: amd64 (0.2.1.2-1ubuntu0.1, automático) , geoclue: amd64 (0.12.0-1ubuntu12, automático), unity: amd64 (5.18.0-0ubuntu1, automático), impresoras indicadoras: amd64 (0.1.6-0ubuntu1, automático), libevolution: amd64 (3.2.3- 0ubuntu6, automático), libqt4-declarative: amd64 (4.8.1-0ubuntu4.3, automático), libmtp9: amd64 (1.1.3-1ubuntu0.1, automático), tracker-miner-fs: amd64 (0.14.0-2ubuntu1 , automático), gir1.2-rb-3.0: amd64 (2.96-0ubuntu4.2, automático), python-aptdaemon.pkcompat: amd64 (0.43 + bzr805-0ubuntu7, automático), gnome-media: amd64 (3.4.0- 0ubuntu3.1, automático), metacity: amd64 (2.34.1-1ubuntu11, automático), nautilus: amd64 (3.4.2-0ubuntu6, automático), libcompizconfig0: amd64 (0.9.7.0 ~ bzr428-0ubuntu6, automático), compiz- plugins-default:amd64 (0.9.7.12-0ubuntu1, automático), libunistring0: amd64 (0.9.3-5, automático), libebackend-1.2-1: amd64 (3.2.3-0ubuntu7, automático), ubuntu-docs: amd64 (12.04.6 , automático), python-mako: amd64 (0.5.0-1, automático),
Para todos aquellos que sugirieron autoremove
: No estoy seguro de por qué, pero obtuve solo 1 paquete relacionado con Python (python-keybinder o algo así) como "innecesario" y eso es todo lo que Autoremove pudo eliminar.
Entre la instalación y la desinstalación, solo se instaló un cambio importante xubuntu-restricted-extras
.
sudo apt-get install -s package
donde-s
denota una simulación ypackage
será reemplazado por el nombre del software apropiado.cardapio-gnomepanel
paquete?apt-get remove carpadio
llevó.autoremove
no funciona para ti. O de alguna manera marcó todos los paquetes como instalados manualmente ahora o hay un simple malentendido. Es muy simple:apt-get autoremove
simplemente elimina todos los paquetes marcados instalados automáticamente sin una razón para tenerlos ahora. Si no funciona para usted, creo que ha cambiado algo en su sistema que no mencionó en su pregunta.Respuestas:
Básicamente, tendrá que ejecutar ambos
apt-get remove
(o apt-get purge) el paquete y ejecutarloapt-get autoremove
para que revierta la instalaciónpackage-one
.Veamos todo el proceso:
sudo apt-get install package-one
instala 50 dependencias con él marcado "automático" como también se puede ver en el extracto de registro en su preguntasudo apt-get purge package-one
Remueve (purgas) sólo uno, sino hacer funcionar esto!Todas las siguientes acciones de instalación (si ejecuta alguna) generarán un mensaje informativo con los paquetes que ya no se necesitan:
Esta lista es básicamente una lista de todos los paquetes marcados como "automáticos" sin una dependencia inversa de ellos. En otras palabras, no hay razón para que se instalen en lo que respecta a la gestión de paquetes.
Nota: ¡No se necesita instalación! ¡Es solo para demostrar que APT es inteligente para informarle sobre sus paquetes innecesarios!
sudo apt-get autoremove --purge
elimina (purga) estosMás información
Documentación oficial en
autoremove
la página deapt-get(8)
manual:¿Cuál es la forma correcta de eliminar por completo una aplicación?
fuente
autoremove
.autoremove
no ayudó.sudo apt-get update
sería suficiente?Cuando desee eliminar un paquete y sus dependencias que se instalaron en ese momento, debe usar:
pero para deshacer
apt
acciones, puede usarapt-undo
script. Es un script simple que puede deshacer lasapt
acciones realizadas en Ubuntu. Cabe señalar que este script solo puede funcionar si lo usa en lugar deapt-get
instalar / actualizar / eliminar / purgar / degradar sus paquetes.Para instalar
apt-undo
en Ubuntu, ejecute los siguientes comandos en la terminal:uso:
Para deshacer, las
aptitude
acciones anteriores ejecutan los siguientes comandos en el terminal:fuente
Usa el poder de Unix. Tome la línea del archivo de registro que tiene y cree un comando que deshaga lo que hizo apt. Por ejemplo:
Para que pueda utilizar esta purga todos los paquetes que instaló accidentalmente, dada la línea apropiada de su archivo de registro:
(Lo he usado en
perl
lugar desed
porquesed
usa un tipo de expresión regular que no admite coincidencias no codiciosas, que era la forma más fácil de construir lo que necesitaba)fuente
apt
registro en un nuevo archivo y luego lo apliqué: ¡perl -pe 's/\(.*?\)(, )?//g' /path/to/apt-history.log
Entonces todo lo que hice fue anteponer esa salidasudo apt-get remove
y listo!Después de quitar el paquete, y puede eliminarlo completamente mediante la adición de --purge, para,
apt-get remove --purge <package>
, se debe dar un mensaje de que los programas para bibliotecas, en tirada eran instalan automáticamente y ya no es necesario, momento en el que se puede ejecutarapt-get autoremove
a eliminarlosfuente
Sigue el
sudo apt-get purge packagename
conA menos que sea un metapaquete, esto debería encargarse.
Consulte también las preguntas frecuentes en ¿Cómo elimino manualmente todos los archivos de Cardapio? .
fuente
new_file.txt
perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
sudo apt-get remove
[pegue el contenido del portapapeles aquí]Hecho.
Básicamente, necesitamos formatear la lista de paquetes del registro de apt en algo que apt-get pueda entender. El paréntesis, las palabras intermedias y las comas deben ir, así que ahí es donde entra en juego el perl. Sí, hay formas mejores (más eficientes), pero lo he hecho, es fácil de entender y funciona.
fuente
Para deshacer la última instalación de apt, también puede usar algo como esto:
Esto capturará la última instalación apta del historial y purgará todos los paquetes instalados aquí.
Puede crear una función llamada aptpurgelastinstall para tenerla siempre a mano (agregará el código a ~ / .bashrc):
Ahora simplemente necesita escribir aptpurgelastinstall en el shell para rehacer la última instalación.
fuente
Si acaba de agregar un ppa y desea revertir, debe realizar los pasos que se describen a continuación. Comprenda que esto puede fallar cuando haya instalado otros paquetes que no desea desinstalar. Estoy seguro de que esto se puede hacer con un script. Personalmente, creo que esto debería ser parte de apt, y debería haber una mejor administración de qué paquetes se instalan debido a las dependencias y cuáles se instalan a pedido del usuario.
1) elimine el ppa de /etc/apt/sources.list Recuerde la hora en que agregó el ppa. Si tienes suerte, no necesitas ser preciso.
2) haga una lista de qué reinstalar, desde el momento en que instaló el PPA: cat /var/log/dpkg.log | grep 'actualización'
3) haga una lista de lo que debe eliminar, desde el momento en que instaló el PPA: cat /var/log/dpkg.log | grep 'instalar'
4) elimine todos los paquetes del paso 3: sudo apt-get remove {lista de paquetes del paso 3}
5) reinstale todos los paquetes del paso 2: sudo apt-get install --reinstall {lista de paquetes del paso 2}
6) Si las cosas salieron mal y no puede pensar en una solución, vuelva a colocar el PPA y reinstale todos los paquetes de las dos listas.
fuente
Sé que es una pregunta bastante antigua, pero vine aquí buscando ayuda y tal vez pueda ayudar a alguien. Tuve una situación similar a la de @ Karthik-T después de la instalación
unity8-desktop-session-mir
. Sé que es grande. Sacó 233 paquetes con él.Utilizando
autoremove
me eliminan solo 34 de ellos. El punto es que durante launity8-desktop-session-mir
instalación, eliminó dos paquetes (python3-aptdaemon.pkcompat
yevolution-data-server-online-accounts
). Se indica en/var/log/apt/history.log
, después de laInstall
sección.Para deshacer completamente la instalación de Unity 8, emití lo siguiente:
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
(eliminó 8 paquetes relacionados con Unity 8)sudo apt-get --purge autoremove
Esto no eliminará absolutamente todo lo que instaló antes, pero en algunos casos es lo suficientemente bueno.
PD: tal vez el
autoremove
paso dos no sea necesario, ya que emití nuevamente en el paso cuatro.fuente
Técnicamente, las operaciones de "eliminar" o "quitar automáticamente" no se "deshacen", aunque se puede hacer que hagan el trabajo lo suficientemente bien la mayoría de las veces.
De forma predeterminada, apt-get dejará paquetes atrás, a menos que especifique
-o APT::Suggests-Important=0 -o APT::Recommends-Important=0
Es más confiable echar un vistazo a apt
history.log
y desinstalar todos los paquetes instalados. He creado un pequeño script basado en nodos para facilitar el proceso:https://github.com/rolfen/apt-history
Además, aquí hay otro enfoque más manual para "retroceder" los cambios:
https://unix.stackexchange.com/a/236711
fuente