我正在使用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解决此问题时发现的网页:
一个声称修复这个问题的补丁:
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它,并安装它工作!