A modo de referencia y completarlo, un comando que sería capaz de lograr lo que inicialmente solicitó sería algo como esto (fiddled rápidamente juntos, pero que está funcionando)
rpm -qf $(rpm -Va 2>&1 | grep -vE '^$|prelink:' | sed 's|.* /|/|') | sort -u
Aquí hay una breve explicación de las diferentes partes:
rpm -Va 2>&1
Ejecutará una verificación completa de todos los paquetes actualmente instalados / listados en la base de datos rpm. También redirigirá stderr a stdout, ya que aquí en mi cuadro algunos errores causados por la activación del preenlace se informan como errores, pero los queremos en stdout.
Atención: debe ejecutarse como root para poder verificar todos los archivos, permisos y propietario / grupo.
grep -vE '^$|prelink:'
Suprime visualización de las líneas emtpy y tales de los errores prelink (ejemplo de un error de este tipo:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)
sed 's|.* /|/|')
filtrará la rpm -Va
salida para mostrar solo los nombres de archivo
rpm -qf $()
preguntará por todos los nombres de archivo obtenidos en qué paquete están contenidos, y mostrará el nombre y la versión del paquete
| sort -u
suprimirá las combinaciones duplicadas de nombre / versión del paquete.
En total, recibirá una lista de paquetes que fallaron la verificación.
rpm -Va
aún podría mostrar algunos problemas no relacionados, ya que también verifica las dependencias entre paquetes, que es posible que deba suprimirse agregando --nodeps
.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)