“yumdownloader”找不到 RHEL6 SRPM

“yumdownloader”找不到 RHEL6 SRPM

我正在尝试从 redhat 的服务器下载 SRPM。我已完成初始化存储库的第一步...

# cat /etc/yum.repos.d/rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

然后我执行了 yum update,并做了所有事情以确保我的 repo 数据库是最新的。然而,当我去下载源代码时...

# yumdownloader --source gcc
Loaded plugins: product-id, refresh-packagekit, rhnplugin
No source RPM found for gcc-4.4.4-13.el6.x86_64
No source RPM found for gcc-4.4.5-6.el6.x86_64
Nothing to download

我在 CentOS 5 上执行了同样的步骤,并且成功了。(虽然我使用的是 CentOS 存储库,而不是 RHEL 的存储库……但我还是感到困惑。我甚至手动通过 FTP 访问了他们的服务器,然后查看

ftp> ls gcc*
227 Entering Passive Mode (209,132,183,61,19,97).
150 Here comes the directory listing.
-rw-r--r--    4 ftp      ftp      52214716 Aug 17  2010 gcc-4.4.4-13.el6.src.rpm
-rw-r--r--    5 ftp      ftp      52113813 Apr 21 20:28 gcc-4.4.5-6.el6.src.rpm
226 Directory send OK.
ftp>

在我看来,它们看起来像是 SRPM……我做错了什么?

谢谢。

答案1

这似乎是 yum-utils 中的一个错误,并不是你做错了什么。

我在 RHEL 6 服务器和 Fedora 14 工作站之间进行了一些粗略的“打印”调试。就在 /usr/bin/yumdownloader 中的第 47 行和第 48 行之后:

(n,v,r,e,a) = rpmUtils.miscutils.splitFilename(pkg.sourcerpm)
src = self.pkgSack.searchNevra(name=n, ver=v, rel=r, arch='src')

我添加了一些调试语句并发现以下内容:

从我的 RHEL 6 服务器(“Debug:”后面的缩进区域是感兴趣的区域):

# yumdownloader --source gcc
Loaded plugins: presto, rhnplugin
Enabling epel-source repository
Debug: 
    pkg.sourcerpm = gcc-4.4.4-13.el6.src.rpm
    n = gcc
    v = 4.4.4
    r = 13.el6
    src = []
No source RPM found for gcc-4.4.4-13.el6.x86_64
Debug: 
    pkg.sourcerpm = gcc-4.4.5-6.el6.src.rpm
    n = gcc
    v = 4.4.5
    r = 6.el6
    src = []
No source RPM found for gcc-4.4.5-6.el6.x86_64
Nothing to download

从我的 Fedora 14 工作站:

# yumdownloader --source gcc
Loaded plugins: presto, refresh-packagekit
Enabling updates-source repository
Enabling rpmfusion-nonfree-updates-source repository
Enabling rpmfusion-nonfree-source repository
Enabling rpmfusion-free-updates-source repository
Enabling fedora-source repository
Enabling rpmfusion-free-source repository
Debug: 
    pkg.sourcerpm = gcc-4.5.1-4.fc14.src.rpm
    n = gcc
    v = 4.5.1
    r = 4.fc14
    src = [<YumAvailablePackageSqlite : gcc-4.5.1-4.fc14.src (0xe5e150)>]
gcc-4.5.1-4.fc14.src.rpm                                 |  52 MB     00:38

因此,根据 Fedora 14,我们知道 src“应该”是什么。/usr/bin/yumdownloader 在 RHEL6 和 Fedora 14 之间是相同的(md5sums 匹配)。但是 yumdownloader 所利用的 yum-utils 库在 RHEL6 和 Fedora 14 之间是不同的,这可能是罪魁祸首。

我会提交一份漏洞使用 Redhat 的 yum-utils 包。

相关内容