Después de un cierre inmundo y un fsck colorido, un montón de archivos han desaparecido. La salida de 'rpm -Va' tiene varios cientos de líneas (en su mayoría faltan archivos, pero también algunas sumas de comprobación y otros desajustes). ¿Hay una manera fácil de reinstalar paquetes que tienen archivos faltantes y / o corruptos?
El sistema operativo en cuestión es Fedora 22.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)
Respuestas:
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)
Aquí hay una breve explicación de las diferentes partes:
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.
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
)filtrará la
rpm -Va
salida para mostrar solo los nombres de archivopreguntará por todos los nombres de archivo obtenidos en qué paquete están contenidos, y mostrará el nombre y la versión del paquete
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
.fuente
Hace poco tuve un problema similar con los archivos que faltan en openSUSE 13.2 y arreglado con:
Las opciones a rpm y la llamada a awk están destinadas a ahorrar tiempo en mi caso, porque se ha producido sin corrupción.
fuente
--nofiles
y por lo tanto básicamente hace lo mismo queyum check dependencies
ya que sólo verificar todos los paquetes instalados para problemas de dependencia.--nofiles
ahorraría mucho tiempo para instalaciones que no sean SSD, pero también omitiría la verificación de los archivos que faltan. ... solo por completo. Y por favor, tenga en cuenta, si grep para cadenas en inglés, es posible que desee prefijo conLC_ALL=C
;)