百胜回购列出大于2GB的软件包不正确的大小

我正在使用createrepo创build我的yum存储库。 但是,它似乎有一个错误 – 我的一个包,这是11GB的大小,错误地显示为956 MB,当我尝试从客户端机器做yum install bigpackage 。 当试图下载大包安装,yum错误与此:

 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 

这显然是因为该软件包在我的回购列表中以错误的大小列出。 所以我search了一个解决scheme。

这似乎是一个createrepo的错误。 这是不正确地在内部铸造一些64位整数,用于存储包的大小的variables被损坏。 以下是我在search解决此问题时发现的网页:

  • https://bugzilla.redhat.com/show_bug.cgi?id=612409
  • https://bugzilla.redhat.com/show_bug.cgi?id=679760
  • https://bugzilla.redhat.com/show_bug.cgi?id=531243
  • https://bugzilla.redhat.com/show_bug.cgi?id=625759

一个声称修复这个问题的补丁:

http://yum.baseurl.org/gitweb?p=yum-metadata-parser.git;a=commitdiff;h=2d8499cf272bf9027d015fae0d344998debfae69

我不知道如何应用该补丁,但希望最新版本的createrepo包含该修补程序,我下载并升级到最新的0.9.2版本的createrepo。

但是这仍然不起作用 – 大包装的尺寸仍然错误列出。 哎呀! 任何想法如何解决createrepo在回购显示正确的大小? 用于创build支持大于2GB的包的yum repos的任何替代工具?

事实certificate, 我发现的补丁不是用于CreateRepo的,与Ubuntu无关,它实际上是yum-metadata-parser (在CentOS上,这个软件包叫做yum-metadata-parser.x86_64 1.1.2-16.el6 )。 它试图parsing正确写入存储库xml文件的大号码,并失败,因为它不是yum使用的sqlite数据库中的64位整数列。

将修补程序应用到yum-metadata-parser源代码,构build它,并安装它工作!