Linux下测试系统镜像光盘是否可以作为YUM仓库使用


实验背景:

使用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,虚拟机中装载系统镜像

Linux下测试系统镜像光盘是否可以作为YUM仓库使用

2,将光盘挂载在/media/cdrom目录下

Linux下测试系统镜像光盘是否可以作为YUM仓库使用

查看光盘目录,已存在repodata目录,则意为此目录已是一个有效的yum数据库。则已满足了上述的其中一个条件,接下来查看是否存在有效的yum配置文件,其指向此yum仓库。

3,修改repo配置文件

Linux下测试系统镜像光盘是否可以作为YUM仓库使用

/etc/yum.repos.d目录下默认已存在文件CentOS-Media.repo,其即为光盘yum仓库对应的yum配置文件,查看此文件,其中一项baseurl= file:///media/cdrom/,这也是为什么要将光盘挂载在/media/cdrom目录下的原因。其中enabled=0,即默认未启用光盘yum仓库。将其值修改为1,即启用此yum仓库。

4,至此,yum工具使用的两个前提条件都已满足。

测试是否可以使用:

Linux下测试系统镜像光盘是否可以作为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: 修改配置文件名使其失效

Linux下测试系统镜像光盘是否可以作为YUM仓库使用

方法b:临时禁用所有的yum仓库,只启用c6-media,用以执行yum命令

Linux下测试系统镜像光盘是否可以作为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源的配置

RedHat 6.2 Linux修改yum源免费使用CentOS源

配置EPEL YUM源

Redhat 本地yum源配置

yum的配置文件说明

RedHat 6.1下安装yum(图文)

YUM 安装及清理

相关内容