现场环境:
一台主机下有多个虚拟机,如15.32.12.122 ~ 15.32.12.130,安装centos6.3系统且为最小安装,即很多命令或者库都不支持或者没有,但在15.32.12.129上有一个镜像文件,其内有各种的安装文件,且路径为15.32.12.129/CentOS63/,我们可以在浏览器中打开(当然,前提是我们电脑的ip是要在同一网段的),在目录Packets下有很多.rpm安装文件。现在我们想在15.32.12.122这台电脑上制作yum本地源。
在有外网的条件下,我们就直接可以用yum -y install perl命令安装perl环境,其原理也是通过外网去各种镜像下去寻找所要安装的文件,但在没有外网的环境下,我们可以通过内网去连接内部的镜像,并从中下载,http://15.32.12.129/CentOS63就是这样的内部镜像路径。
1、创建yum配置文件
cd /etc/yum.repos.d/
发现里面有几个.repo文件,里面描述的就是用yum进行安装时所要连接的镜像url,我们自己需要创建一个.repo文件,在此命名为local.repo
#vi local.repo
[local_server]
name=This is local repo
baseurl=http://15.32.12.129/CentOS/
enabled=1
gpgcheck=0
gpgcheck=0时表示不对GPG-KEY进行检查。
如果我们已经把所有所需要的.rpm文件全部拷贝到122这台电脑上,如目录为/yum_rpm/下时,在baseurl这栏应该写为:
baseurl=file:///yum_rpm/ //这里斜杠有三个
2、对yum进行初始化操作
yum clean all //清除缓存
yum makecache //建立新缓存
问题1:但可能会发现建立新缓存失败,因为原来那几个.repo文件里的镜像是需要用外网连接的,但现在条件是没有外网,所以会提示找不到这些镜像url,我们可以将这些.repo文件的扩展名改了,如都改为.repo_bark等,或者将这些.repo文件移动到其他文件下:
#mkdir back
#mv Cent* back/
则yum.repos.d目录下只有一个local.repo文件,再重新以上操作就行。
问题2:当baseurl的方式是file的方式,即将所有需要的rpm包存放在文件夹yum_rpm时,在yum makecache 时会发现出现问题:Could not open file repodata/repomd.xml,找不到这个文件,我们在这里要用到命令createrepo,这个命令需要手动安装,先cd到目录yum_rpm中,再rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm安装。安装好后将目录yum_rpm创建成yum库:createrepo /yum_rpm/,这时再去yum makecache发现可以了。
3、可以用yum进行安装文件
如yum -y install tar