说明:本例系统是 Fedora 7,默认目录是 /media。
一、挂载 iso。本例中都在 /media 下完成。
#cd /media
#mkdir iso
#mount -r -o loop /path/to/Fedora-7-i386-DVD.iso /media/iso/
二、在本地文件系统建立 repo 源目录,这和 FC6 下不一样,必须重挂载到本地系统,而不是建立符合链接。
#cd /media
#mkdir repo
#cd repo
#mkdir Fedora
#mount --bind /media/iso/Fedora Fedora
三、在本地文件系统建立 repodata 数据文件。
首先确定系统安装了 createrepo,如果没有,需先安装好该工具:
#rpm -ivh /media/iso/Fedora/createrepo-0.4.8-4.fc7.noarch.rpm
制作数据文件:
#cd /media/repo
#createrepo -g /media/iso/repodata/comps-f7.xml .
注意:命令 "createrepo -g /media/iso/repodata/comps-f7.xml ." 的最后有一个点".",表示当前目录,不然将报错,无法生成数据文件!createrepo 执行完以后,/media/repo 目录下就产生了一个 repodata 目录,里面放置的就是 repodata 数据文件。
四、使用已准备好的 iso 文件。
备份 /etc/yum.repos.d 目录,并删除该目录下的所有文件。修改 /etc/yum.conf ,将 gpgcheck=1 这一行注释掉,看起来是这样:
#gpgcheck=1
并且在文件末尾加入以下内容:
[ISO]
name=iso
baseurl=file:///media/repo
清除先前保存的 cache:#yum clean all
现在,yum 就可以像使用网络资源一样使用 iso 镜像了,并自动安装依赖关系要求的的 rpm 包。
注:
有几个和 FC6 不同的地方,其一是要重挂载 RPM 存放目录到本地系统,而不是建立符号链接;其二是 createrepo rpm 包的存放目录改变了。如果是建立符号链接,生成 repodata 时将不重新生成数据库文件,而是直接复制 iso 文件里面的目录,这样产生的 repodata 是不可用的;对于特定的系统,使用 iso 文件作为 yum 源时,repodata 必须由本地系统生成,否则和本地 rpm 包的安装情况不一致,源将不可用。
zhuhehz 于 2007-07-24 15:27:26发表:
1)备份/etc/yum.repos.d下的所有升级配置文件
#cd /etc/yum.repos.d
#mkdir backup
#cp * backup
2)建立本地添加删除的配置文件
#vi local.repo #文件名可以任意,但最后必须是repo
文件中输入:
[local] #标记,必须在文件中唯一
name =Fedora software from local #一段描述
baseurl=file:///mnt/local #这里的local必须和上面的local一样。
按ESC键,进入命令状态,然后输入:wq,保存退出。
说明:
#baseurl表示软件来自/mnt/local。不论是将安装光盘全部复制到/mnt/local或者将光驱挂载到/mnt/local都是一样的。注意,安装光盘内容的结构不能改变。如果是CD版的,从第一张复制到最后一张,覆盖重复的文件即可。如果是DVD版的,直接复制即可。
3)挂载光驱
#挂载安装镜像的方法很多,可以直接挂载iso文件,不伦是否DVD的,方法一样:
#mount -o loop fedora6.iso /mnt/local #挂载镜像文件
#umount /dev/hdc #我的电脑,fedora6中将光驱识别为/dev/hdc
#mount /dev/hdc /mnt/local #挂载我的光驱到/mnt/local
4)修改配置文件/usr/lib/python2.4/site-packages/yum/yumRepo.py
#vi /usr/lib/python2.4/site-packages/yum/yumRepo.py
按下/,输入remote,将找到的行中的url修改为"/mnt/local",注意不能去掉引号!
保存退出即可。
5)清除yum缓存
#yum clean all
6)运行桌面环境下的“应用程序/添加删除...”就可以方便地添加删除了。