1. 设置 iso 文件的自动挂载并安装 createrepo
mkdir /media/rhel
mount -o loop rhel-5-server-i386-dvd.iso /media/rhel
#如果是光盘,则mount –t iso9660 /dev/cdrom /media/rhel
vi /etc/fstab
/dev/cdrom /media/rhel iso9660 ro 0 0 #可设为开机自动挂载,看你需要啦!
mount –a #重新挂载所有
rpm -ivh /media/rhel/Server/createrepo-
2. 配置 repo
cd /etc/yum.repos.d
mv rhel-debuginfo.repo rhel-debuginfo.repo~
vi rhel-media.repo
mkdir -p /var/rhel/{Cluster,ClusterStorage,Server,VT}
4. createrepo:生成repodata软件信息仓库
createrepo -o /var/rhel/Cluster -g /media/rhel/Cluster/repodata/comps-rhel5-cluster.xml /media/rhel/Cluster # -o选项为设置repodata目录的输出位置,没有的话就在当前目录中输出;-g选项指定查找组文件的位置;最后的路径表示rpm包目录的位置,并且只要在所查找的路径下含有此目录即可,程序会自动向下查找的了。
createrepo -o /var/rhel/ClusterStorage -g/media/rhel/ClusterStorage/repodata/comps-rhel5-cluster-st.xml/media/rhel/ClusterStorage
createrepo -o /var/rhel/Server -g /media/rhel/Server/repodata/comps-rhel5-server-core.xml /media/rhel/Server
createrepo -o /var/rhel/VT -g /media/rhel/VT/repodata/comps-rhel5-vt.xml /media/rhel/VT
5. 避免无谓的“下载”
mount --bind /var/rhel/Cluster/repodata /media/rhel/Cluster/repodata
mount --bind /var/rhel/ClusterStorage/repodata /media/rhel/ClusterStorage/repodata
mount --bind /var/rhel/Server/repodata /media/rhel/Server/repodata
mount --bind /var/rhel/VT/repodata /media/rhel/VT/repodata
#可加入 /etc/rc.local 开机自动绑定。
#命令mount –-bind olddir newdir
—bind选项的作用是,让普通目录像设备一样挂到任一目录上,所以上述命令的作用是将olddir目录挂载到newdir目录,或者可以看成是olddir目录映射到newdir目录,对目录增删文件,实质都是在 newdir目录中进行。若想将挂载项写到fstab中,但如果开启了SElinux,开机不会挂载成功,但可用mount –a挂载。对于示例中所说“避免无谓的’下载’”,我也搞不清所谓的“下载是什么意思”,据我了解每当用yum安装软件时,都会将repodata目录中的内容下载下来,保存在一个缓存中,其路径为/var/cache/yum/[源名称目录]/,而示例所示路径与系统默认路径不同,如有谁知道这个“下载”是指啥意思?记得告诉我。也许这里的目的纯粹是为了将新建的repodata仓库用上罢了,因为如果直接用光盘repodata目录下的文件,可以会出错,导至不成功,重新生成repodata是最好最保险最好的做法。
6. 清除缓存
yum clean all