O repositório da Yum lista o tamanho incorreto para pacotes maiores que 2GB

2

Estou usando o createrepo para criar meu repositório yum. No entanto, parece ter um bug - um dos meus pacotes, que tem 11 GB de tamanho, está incorretamente mostrado como apenas 956 MB quando tento fazer um yum install bigpackage de uma máquina cliente. Ao tentar baixar o pacote grande para instalação, yum erros com isso:

Error Downloading Packages:
  bigpackage-0.1-53952.x86_64: failed to retrieve bigpackage-0.1-53952.x86_64.rpm from myrepo-prod-source
error was [Errno 14] Downloaded more than max size for http://myrepo/yum/repo/centos//bigpackage-0.1-53952.x86_64.rpm: 1073004544 > 975454259

Isto é obviamente porque o pacote está listado no meu repositório com o tamanho errado. Então eu pesquisei por uma solução.

Isso parece ser um bug com o createrepo. É incorretamente lançando alguns inteiros de 64 bits internamente e a variável usada para armazenar o tamanho do pacote está sendo corrompida. Aqui estão as páginas que descobri em minha pesquisa para a resolução deste problema:

Um patch que supostamente corrige esse problema:

link

Não tenho certeza de como aplicar esse patch, mas na esperança de que a versão mais recente do createrepo inclua essa correção, fiz o download e atualizei para a última versão de desenvolvimento do createrepo, 0.9.8.

Isso ainda não funcionou, no entanto - o tamanho do pacote grande ainda está listado incorretamente. Argh! Alguma idéia sobre como corrigir createrepo para mostrar o tamanho certo no repositório? Quaisquer ferramentas alternativas para a criação de repositórios yum que suportem pacotes maiores que 2GB?

    
por Aphex 24.07.2013 / 02:36

1 resposta

0

Acontece que, o patch que encontrei não é para CreateRepo e não tem nada a ver com o Ubuntu, é na verdade para yum-metadata-parser (no CentOS, este pacote é chamado %código%). Ele está tentando analisar o número de tamanho grande que está escrito corretamente no arquivo xml do repositório e falha porque não é uma coluna de inteiro de 64 bits no banco de dados sqlite que o yum usa.

Aplicar o patch à fonte do parser de metadados do yum, construí-lo e instalá-lo funcionou!

    
por 13.08.2013 / 02:32