在配置CentOS-6.0-x86_64-bin-DVD2.iso做为本地yum源的时候,碰到至关多的问题:sql
----------------------------------------- 问题一 ------------------------------------------数据库
将CentOS-6.0-x86_64-bin-DVD2.iso挂载在/mnt上,并配置本地yum源:centos
- #mount /root/CentOS-6.0-x86_64-bin-DVD2.iso /mnt -o loop
- #vi /etc/yum.repos.d/software.repo
- [software]
- name=software
- baseurl=file:///mnt
- enabled=1
- gpgcheck=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
- #yum repolist
而后就报错了-_-!,错误的信息差很少就是:ide
file:///mnt/repodata/repomd.xml: [Errno 14] Could not open/read file:///mnt/repodata/repomd.xml . mistake from baseurl does not contain the repodata directory工具
问题出现的缘由:oop
CentOS-6.0-x86_64-bin-DVD2.iso这个镜像里没有包含yum的包索引数据库repomd.xml,这个文件通常是放在repodata文件夹的。因此,不用特殊的工具,这个CentOS-6.0-x86_64-bin-DVD2.iso中包含的Packages不能单独做为yum的本地源。url
----------------------------------------- 问题二 ------------------------------------------spa
在个人CentOS-6中,/etc/yum.repos.d/目录下自己已经有3个已经建好的repo库了,是Base、Media、Debug。xml
我本身新建一个software.repo,使用CentOS-6.0-x86_64-bin-DVD1.iso这个镜像,这个镜像中包含repodata文件。索引
但无论我怎么调整设置,用yum repolist命令都搜不到iso中包含的软件包,而且将全部的.repo中的enabled值都设置为1,但使用yum repolist会提示错误:
解决方法:要使用本身新建的yum本地源,须要将系统自己提供的.repo库暂时设置为禁用(enabled=0),这样的状况下,使用yum repolist就能够正确的搜索iso提供的本地软件包库了。
附:创建本地yum源的步骤:
一、将带有软件包和相应repodata索引的iso镜像挂载在某目录下(我是放在/mnt下)
二、在/etc/yum.repos.d/下创建本身的配置文件(例如software.repo),必须用.repo结尾,内容为:
- [software] //software是配置名
- name=software
- baseurl=file:///mnt/ //由于是本地源,因此是file://,指向软件库和repodata的父目录
- enabled=1 //激活这个配置
- gpgcheck=0 //不进行gpg检查
三、将yum.repos.d/目录下得其余配置文件的enabled键值设置为0,不然按顺序执行时会干扰本身创建的配置文件。