centos - paquetes - que es yum
¿Cómo desinstalo todos los rpms instalados hoy con yum? (2)
Estoy muy familiarizado con
rpm -qa --last
y he encontrado que es muy útil en ciertas ocasiones. Sin embargo, en esta ocasión accidentalmente me puse demasiado celoso e instalé un gran grupo de yum.
yum groupinstall "Development tools"
¿Hay alguna manera fácil de desinstalar todo lo que acabo de instalar? Me parece que debería haber alguna forma de combinar la consulta de rpm y el borrado de rpm. es decir, conectar la salida de un comando de consulta al comando eliminar.
Actualización: basada en los comentarios del usuario @ rickhg12hs
Se señaló que puedo ver la identificación de la transacción con el yum history
que no sabía. Esto es lo que parece:
$ yum history
Loaded plugins: fastestmirror, security
ID | Login user | Date and time | Action(s) | Altered
----------------------------------------------------------------------------
69 | <jds> | 2015-05-11 01:31 | Install | 1
68 | <jds> | 2015-05-11 01:31 | Install | 1
67 | <jds> | 2015-05-11 01:10 | I, U | 210
66 | <jds> | 2015-05-05 12:41 | Install | 1
65 | <jds> | 2015-04-30 17:57 | Install | 2
64 | <ansible> | 2015-04-30 10:11 | Install | 1
63 | <ansible> | 2015-04-30 10:11 | Install | 1
62 | <ansible> | 2015-04-30 10:11 | Install | 1 EE
61 | <ansible> | 2015-04-30 10:11 | Install | 1
60 | <ansible> | 2015-04-30 10:11 | Install | 1
59 | <ansible> | 2015-04-30 09:58 | Install | 19 P<
58 | <ansible> | 2015-04-29 18:28 | Install | 1 >
57 | <ansible> | 2015-04-29 18:28 | Install | 1
56 | <ansible> | 2015-04-29 18:28 | Install | 9
55 | <ansible> | 2015-04-29 18:28 | Install | 3
54 | <ansible> | 2015-04-29 18:28 | Install | 1
53 | <ansible> | 2015-04-29 18:27 | I, U | 5
52 | <ansible> | 2015-04-29 18:27 | I, U | 4
51 | <ansible> | 2015-04-29 18:27 | Install | 1
50 | <ansible> | 2015-04-29 18:27 | Install | 1
y tada: Ahí está, una identificación de transacción.
Quiero desinstalar desde la identificación de transacción 67. Ahora que soy un poco más inteligente, tengo una nueva pregunta.
Entonces, ¿cómo puedo usar el comando yum o rpm para desinstalar una transacción?
Nota: también se me indicó que puedo hacer una
$ yum history info 67 |less
Loaded plugins: fastestmirror, security
Transaction ID : 67
Begin time : Mon May 11 01:10:09 2015
Begin rpmdb : 1012:bb05598315dcb21812b038a356fa06333d277cde
End time : 01:13:25 2015 (196 seconds)
End rpmdb : 1174:cb7855e82c7bff545319c38b01a72a48f3ada1ab
User : <jds>
Return-Code : Success
Command Line : groupinstall Additional Development
Transaction performed with:
Installed rpm-4.8.0-38.el6_6.x86_64 @updates
Installed yum-3.2.29-60.el6.centos.noarch @anaconda-CentOS-201410241409.x86_64/6.6
Installed yum-plugin-fastestmirror-1.1.30-30.el6.noarch @anaconda-CentOS-201410241409.x86_64/6.6
Packages Altered:
Dep-Install GConf2-2.28.0-6.el6.x86_64 @base
Install GConf2-devel-2.28.0-6.el6.x86_64 @base
Dep-Install ORBit2-2.14.17-5.el6.x86_64 @base
... snip ...
Creo que esto podría ser bastante útil en determinadas circunstancias.
Si desinstalas paquetes, corres el riesgo de eliminar cosas que ya estaban allí, pero que pasaron a ser actualizadas. Como regla general, debe usar yum
(o equivalente) para administrar paquetes, lo que le permite degradar un paquete. Esto eliminaría paquetes nuevos y degradaría los existentes. Ver, por ejemplo, cómo degradar o eliminar con seguridad glibc con yum y rpm
La selección de los nombres de los paquetes para degradar se puede hacer usando la salida de rpm -qa
, formateada para permitir la selección simple de la fecha dada. Por ejemplo (vea CentOS: enumere los RPM instalados por fecha de instalación / actualización? ), Puede enumerar los paquetes en orden inverso a la fecha de instalación utilizando
rpm -qa --last
Como un enfoque más elaborado, puede usar la opción --queryformat
con la opción :date
para formatear la fecha exactamente como desee (utiliza strftime
).
En cualquier caso, puede crear una secuencia de comandos para extraer los nombres de los paquetes de la salida de rpm
, y usar esos paquetes con yum
(o incluso rpm
) para manipular según sea necesario.
Al hacer una degradación, hay una cosa extraña a tener en cuenta: que revisa la fecha de instalación para que los paquetes sean la fecha actual en lugar de una deshacer completa, utilizando la fecha anterior.
Todos los paquetes instalados en una sola transacción tienen un valor de etiqueta RPMTAG_INSTALLTID idéntico.
Utilizar
rpm -qa --qf ''[%{name}/t%{installtid:date}/n]''
para encontrar todos los paquetes que se instalaron como parte de la instalación del grupo yum.