实验背景:
使用yum工具安装软件包(packages)有两个前提:
1,存在有效的yum配置文件(/etc/yum.repos.d目录下以.repo结尾的文件)
2,在yum配置文件指明有效的yum仓库(repository)。
对于红帽系列的系统,原光盘本身就是一个有效yum仓库,将其(/dev/cdrom)挂载在/media/cdrom下,然后启用此仓库。即可拿来使用。
实验目的:
测试系统镜像光盘是否可以作为yum仓库使用
实验环境:
VmwareWorkstation 9,CentOS 6.4
实验步骤:
1,虚拟机中装载系统镜像
2,将光盘挂载在/media/cdrom目录下
查看光盘目录,已存在repodata目录,则意为此目录已是一个有效的yum数据库。则已满足了上述的其中一个条件,接下来查看是否存在有效的yum配置文件,其指向此yum仓库。
3,修改repo配置文件
/etc/yum.repos.d目录下默认已存在文件CentOS-Media.repo,其即为光盘yum仓库对应的yum配置文件,查看此文件,其中一项baseurl= file:///media/cdrom/,这也是为什么要将光盘挂载在/media/cdrom目录下的原因。其中enabled=0,即默认未启用光盘yum仓库。将其值修改为1,即启用此yum仓库。
4,至此,yum工具使用的两个前提条件都已满足。
测试是否可以使用:
使用yum repolist命令即可查看到已显示光盘yum仓库,id为存c6-media。
但是使用yum list all名命令查询yum仓库中所有的软件包时,命令执行失败。通过返回的信息,可得知此命令在查找yum仓库base时,由于网络故障,而终止命令。由于此实验环境中操作系统的确是未连接网络。但实验的对象为光盘作为的yum仓库c6-media,不涉及网络连接,如何解决呢?
思路1:系统默认存在配置文件CentOS-Base.repo,其中已启用了yum仓库base、extras和updates。若禁用这些yum仓库,则系统中只剩下一个可用的yum仓库c6-media,即可完成测试。
方法a: 修改配置文件名使其失效
方法b:临时禁用所有的yum仓库,只启用c6-media,用以执行yum命令
思路2:由于,命令yum list all查询的是当前系统中所有的已启用的yum仓库,如果指定只是从yum仓库c6-media中查询,即可完成实验。那么如何查询指定的yum仓库?
思路3:由于,命令yum list all查询的是当前系统中所有的已启用的yum仓库,系统默认是先从base中查找,查找失败,则自动终止命令,如何使其失败后,可以继续查找其他yum仓库?或者是优先查找指定的yum仓库?
已尝试修改cost值无效。(测试修改cost后,install package是否可以,无效)
实验遗留问题:
1,Q: 启用yum仓库,修改配置文件中enabled=1即可,如果通过命令实现?
A:yum–enablerepo=repoid COMMAND
此命令只是一次性启用yum仓库,执行后面的命令。并不会修改配置文件中enabled值。
2,Q: 存在多个可用的yum仓库时,yum命令如何指定yum仓库操作,如yumlist、install ?
A:#yum–disablerepo=* –enablerepo=c6-media COMMAND 此命令可以实现。
有无其他方法?
3,Q: yum list命令机制,存在多个仓库时,是如何选择的?(yum install是按cost值选择,但此实验中,base仓库中url无效时,即使修改了c6-media的cost值为最低,也无法绕过base)
推荐阅读:
RedHat Linux 本地yum源的配置 http://www.linuxidc.com/Linux/2013-08/88217.htm
RedHat 6.2 Linux修改yum源免费使用CentOS源 http://www.linuxidc.com/Linux/2013-07/87383.htm
配置EPEL YUM源 http://www.linuxidc.com/Linux/2012-10/71850.htm
Redhat 本地yum源配置 http://www.linuxidc.com/Linux/2012-11/75127.htm
yum的配置文件说明 http://www.linuxidc.com/Linux/2013-04/83298.htm
RedHat 6.1下安装yum(图文) http://www.linuxidc.com/Linux/2013-06/86535.htm
YUM 安装及清理 http://www.linuxidc.com/Linux/2013-07/87163.htm