A melhor maneira de limpar o repositório Yum?

10

Temos um repositório Yum personalizado para o qual nossos desenvolvedores fazem upload de compilações.

O problema é que depois de algum tempo ele fica cheio de versões antigas.

Remover as versões antigas manualmente é muito chato, então antes de tentarmos automatizar nós mesmos, eu me pergunto se há algum script que limpe RPMs antigos com base na versão (preferida) ou no tempo de upload.

Melhor seria se pudéssemos especificar para salvar X as últimas versões e apagar qualquer outra coisa. Então poderíamos cron e apenas deixá-lo rodar diariamente.

Obrigado por qualquer ideia.

    
por SyRenity 04.11.2011 / 21:46

4 respostas

12

A maneira "simples" é apenas despejar tudo em um diretório e executar:

rm $(repomanage --keep=2 --old /path/to/repo)
createrepo /path/to/repo

... a maneira mais complicada é configurar o koji / etc. para fazer suas compilações e criar os repositórios.

    
por 16.11.2011 / 20:41
1

Confira o utilitário "repomanage" do RPM do yum-utils. Faz exatamente o que você está procurando.

[root ~]# repomanage --help
usage:
  repomanage: manage a directory of rpm packages. returns lists of newest
            or oldest packages in a directory for easy piping to xargs
            or similar programs.
  repomanage [--old] [--new] path.


  options:
    -h, --help            show this help message and exit
    -o, --old             print the older packages
    -n, --new             print the newest packages
    -s, --space           space separated output, not newline
    -k KEEP, --keep=KEEP  newest N packages to keep - defaults to 1
    -c, --nocheck         do not check package payload signatures/digests
[root ~]#
    
por 05.03.2013 / 23:38
0

Eu aproveitaria o sistema de controle de versão ou rotulagem que você usa para identificar construções. Você também pode identificar pacotes por data com um script em execução no servidor que hospeda o repositório.

    
por 04.11.2011 / 22:14
0

Se os envios acontecerem todos os dias, por que não considerar a exclusão de arquivos antigos que estão mais antigos além do número determinado de dias (em termos de tempos de acesso / modificação)? Encontre e apenas os exclua. Se você pudesse fazer com que seus desenvolvedores enviassem builds de forma que eles colocassem o nome do mês atual no nome do arquivo ao fazer o upload, faria sentido que o arquivo fosse carregado no chamado month'year e faz sentido excluir apenas pela base de olhar o nome do arquivo. Seria fácil para a sua automação de script apenas considerar a remoção desses arquivos ou apenas manter os arquivos que correspondem ao mês anterior e mês atual. Apenas um pensamento.

    
por 02.12.2011 / 20:27