¿Cómo puedo activar un 'yum clean all' desde un complemento de yum?

Estoy escribiendo un complemento de yum que actualiza las URL de los repositorios locales. Cuando la URL del repositorio cambia, me gustaría que yum ejecute un yum clean all para asegurarse de que no se almacene en caché información desactualizada. Sé que yum tiene un gancho para ejecutar código cuando yum clean [plugins|all] se solicita, pero ¿es posible activar una limpieza completa desde una de las otras funciones de enlace del complemento?

preguntado el 03 de mayo de 12 a las 17:05

Supongo que su complemento está haciendo algo con los metadatos. Porque, de forma predeterminada, yum detecta el cambio de URL (al menos en mi máquina F16) y ejecuta makecache. -

Sí, estoy modificando la URL del repositorio solo en ciertas circunstancias. No parece detectar esto probablemente porque se hace después de la inicialización. Es por eso que estoy pensando que necesito agregar mi propio cheque. -

1 Respuestas

Puedes hacer esto fácilmente. Yum expone una biblioteca que es consumida por el programa de línea de comandos. Aquí hay un código de ejemplo para yum clean all:

import sys
sys.path.append("/usr/share/yum-cli")
import cli
ybc = cli.YumBaseCli()
ybc.cleanCli(["all"])

En caso de que quiera hacer más que "limpiar todo" usando la función, verifique todas las API expuestas por los métodos de la biblioteca CLI expuestos en la carpeta /user/share/yum-cli :)

Saludos,

contestado el 08 de mayo de 12 a las 06:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.