afox123 发表于 2019-1-26 13:58:09

[Errno 14] Could not open/read repomd.xml

  在配置CentOS-6.0-x86_64-bin-DVD2.iso作为本地yum源的时候,碰到相当多的问题:
  -----------------------------------------问题一------------------------------------------
  将CentOS-6.0-x86_64-bin-DVD2.iso挂载在/mnt上,并配置本地yum源:


[*]#mount /root/CentOS-6.0-x86_64-bin-DVD2.iso /mnt -o loop
[*]#vi /etc/yum.repos.d/software.repo
[*]
[*] name=software
[*] baseurl=file:///mnt
[*] enabled=1
[*] gpgcheck=1
[*] gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[*]#yum repolist

  然后就报错了-_-!,错误的信息差不多就是:
file:///mnt/repodata/repomd.xml: Could not open/read file:///mnt/repodata/repomd.xml . mistake from baseurl does not contain the repodata directory
  问题出现的原因:
  CentOS-6.0-x86_64-bin-DVD2.iso这个镜像里没有包含yum的包索引数据库repomd.xml,这个文件一般是放在repodata文件夹的。所以,不用特殊的工具,这个CentOS-6.0-x86_64-bin-DVD2.iso中包含的Packages不能单独作为yum的本地源。
  -----------------------------------------问题二------------------------------------------
  在我的CentOS-6中,/etc/yum.repos.d/目录下本身已经有3个已经建好的repo库了,是Base、Media、Debug。
  我自己新建一个software.repo,使用CentOS-6.0-x86_64-bin-DVD1.iso这个镜像,这个镜像中包含repodata文件。
  但不管我怎么调整设置,用yum repolist命令都搜不到iso中包含的软件包,并且将所有的.repo中的enabled值都设置为1,但使用yum repolist会提示错误:

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=centosplus error was 14:

PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"

Error: Cannot retrieve repository metadata (repomd.xml) for repository: centosplus.

Please verify its path and try again
  解决方法:要使用自己新建的yum本地源,需要将系统本身提供的.repo库暂时设置为禁用(enabled=0),这样的情况下,使用yum repolist就可以正确的搜索iso提供的本地软件包库了。
  附:建立本地yum源的步骤:
  1、将带有软件包和相应repodata索引的iso镜像挂载在某目录下(我是放在/mnt下)
  2、在/etc/yum.repos.d/下建立自己的配置文件(例如software.repo),必须用.repo结尾,内容为:


[*]                     //software是配置名
[*]name=software
[*]baseurl=file:///mnt/         //因为是本地源,所以是file://,指向软件库和repodata的父目录
[*]enabled=1                      //激活这个配置
[*]gpgcheck=0                     //不进行gpg检查

  3、将yum.repos.d/目录下得其他配置文件的enabled键值设置为0,否则按顺序执行时会干扰自己建立的配置文件。



页: [1]
查看完整版本: [Errno 14] Could not open/read repomd.xml