如何修复 CentOS 中的“无法检索存储库元数据(repomd.xml)”?

如何修复 CentOS 中的“无法检索存储库元数据(repomd.xml)”?

我已经尝试过yum update yumyum clean all,但都无法解决以下问题:

# yum install httpd --installroot=/opt/httpd2
Loaded plugins: fastestmirror 
Loading mirror speeds from cached hostfile  
    * rpmforge: repoforge.spinellicreations.com
http://centos.karan.org/el%24releasever/extras/stable/x86_64/RPMS/repodata/repomd.xml:
[Errno 14] HTTP Error 404: Not Found 
Trying other mirror. 
Error: Cannot retrieve repository metadata (repomd.xml) for repository: 
    kbs-CentOS-Extras.
Please verify its path and try again

我还尝试.repo从 中删除 kbs-CentOS-Extras 的所有文件/etc/yum.repos.d,然后重新运行该命令,没有任何变化。以下是我的系统信息,以防万一:

# uname -a
Linux 2.6.18-274.3.1.el5xen #1 SMP Tue Sep 6 20:57:11 EDT 2011 x86_64 GNU/Linux

我现在正在使用该.repo文件此处提供。 这是我的/etc/yum.conf

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
bugtracker_url=http://bugs.centos.org/yum5bug
timeout=300
installonly_limit = 5

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

yum.log文件是空的,但/var/cache/yum/kbs-CentOS-Misc包含一个repomd.xml——这也许可以用来代替远程副本?

如果没有的话,有什么建议可以解决我这个问题吗?

答案1

正确的el%24发布版本变量名称$发布版本在你的 repo 文件中。有关 yum 变量的更多信息,请查看yum配置文件

变量

您可以使用许多变量来简化 yum 配置文件的维护。它们在多个选项的值中可用,包括 name、baseurl 和命令。

$releasever This will be replaced with the value of the version of the package listed in distroverpkg. This defaults to the version of

‘redhat-release’ 包。

$arch This will be replaced with your architecture as listed by os.uname()[4] in Python.

$basearch This will be replaced with your base architecture in yum. For example, if your $arch is i686 your $basearch will be i386.

$uuid This will be replaced with a unique but persistent uuid for this machine. The value that is first generated will be stored in

/var/lib/yum/uuid 并重复使用,直到该文件被删除。

$YUM0-$YUM9 These will be replaced with the value of the shell environment variable of the same name. If the shell environment

变量不存在,则配置文件变量不会被替换。从 3.2.28 开始,/etc/yum/vars 中的任何文件都会变成以文件名命名的变量(或覆盖上述任何变量)。

请注意,如果文件不可读,则不会给出任何警告/错误,因此创建只有 root 才能读取的文件可能会让用户感到困惑。

还请注意,为了方便起见,只会读取第一行,并且会删除所有换行符。但是,不会对数据执行任何其他检查。这意味着任何值都可能包含错误的字符数据。

这个话题将有助于理解 yum 变量。

答案2

我可以通过添加CentALT x86_64存储库。我首先下载centalt-release-5-3.noarch.rpm,然后运行:

rpm -Uvh centalt-release*rpm

在此之后,运行我原来的命令会导致包冲突(我很不高兴重新安装了不同版本的httpd-tools,即使是安装到备用安装目录。)

由于我只是为了测试目的而安装/opt/httpd2,所以我放弃了这个想法,并通过运行成功安装yum upgrade httpd

相关内容