Tenemos un repositorio personalizado de Yum en el que nuestros desarrolladores cargan compilaciones.
El problema es que después de un tiempo se vuelve abarrotado de versiones antiguas.
Eliminar las versiones antiguas manualmente es bastante molesto, por lo que antes de intentar automatizarlo nosotros mismos, me pregunto si hay algún script que pueda limpiar los RPM antiguos según la versión (preferida) o el momento de la carga.
Lo mejor sería si pudiéramos especificar simplemente guardar X últimas versiones y borrar cualquier otra cosa. Entonces podríamos cron y dejarlo correr a diario.
Gracias por cualquier idea
yum
repository
SyRenity
fuente
fuente
Respuestas:
La forma "simple" es simplemente volcar todo en un directorio y ejecutar:
... la forma más complicada es configurar koji / etc. para hacer tus compilaciones y crear los repositorios.
fuente
xargs
, porque de lo contrario podría obtenerlorm: missing operand
(si no hay RPM antiguos para eliminar). Entonces:repomanage --keep=2 --old /path/to/repo | xargs rm -f
rm $(repomanage --keep=2 --old /path/to/repo)
podría exceder fácilmente la longitud máxima del comando.xargs
se encargará de una gran lista de argumentos. Ver: offbytwo.com/2011/06/26/things-you-didnt-know-about-xargs.htmlEcha un vistazo a la utilidad "repomanage" del RPM yum-utils. Hace exactamente lo que estás buscando.
fuente
Aprovecharía el sistema de etiquetado o control de versiones que utiliza para identificar las compilaciones. También puede identificar paquetes por fecha con un script que se ejecuta en el servidor que aloja el repositorio.
fuente
Si las cargas se realizan todos los días, ¿por qué no considerar eliminar los archivos antiguos que son más antiguos que algunos días (en términos de sus tiempos de acceso / modificación)? Encuéntralos y simplemente bórralos. Si pudiera hacer que sus desarrolladores carguen compilaciones de modo que pongan el nombre del mes actual en el nombre del archivo al cargar, tendría sentido, directamente desde el nombre del archivo, que el archivo se cargó en el llamado mes y año y tiene sentido eliminarlo solo por la base de mirar el nombre del archivo. Sería fácil para la automatización de su script considerar eliminar esos archivos o simplemente mantener aquellos archivos que coinciden con el mes anterior y el mes actual. Solo un pensamiento.
fuente