红联Linux门户
Linux帮助

关于fedora6 将dvd作为本地源的问题

发布时间:2010-10-31 00:07:00来源:红联作者:woshihuo12
1。首先我是用虚拟机装的。
2.光盘自动挂载在/media文件夹下 为 FC_6 i386 DVD
3. 将原有的源备份 mv /etc/yum.repo.d /etc/yum.repo.d.bak
4.新建一个文件夹并建立一个文件 mkdir /etc/yum.repo.d vi iso.repo
里面的内容为:

[ISO]
name=iso
baseurl=file:///media/FC_6%20i386%20DVD
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta

其中的%20 是代替的空格
5.然后更新报这个错误。
[root@bogon ~]# yum install php-devel
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for php-devel to pack into transaction set.
media://1161131669.029329%234/Fedora/RPMS/php-devel-5.1.6-3.i386.rpm: [Errno 4] IOError:
Trying other mirror.
Error: failed to retrieve Fedora/RPMS/php-devel-5.1.6-3.i386.rpm from ISO
error was [Errno 4] IOError:
不知道 该怎么解决。
希望知道的大大们告诉下。。。
文章评论

共有 2 条评论

  1. wlike 于 2010-10-31 08:48:31发表:

    2# woshihuo12


    学习下

  2. woshihuo12 于 2010-10-31 00:34:12发表:

    解决方法:
    在/usr/lib/python2.4/site-packages/yum 下。
    编辑yumRepo.py:
    在465 行左右 有个函数:

    def getPackage(self, package, checkfunc = None, text = None, cache = True):
    加两行:
    basepath = package.returnSimple('basepath')
    if(basepath is not None and basepath[:8]=="media://"):
    basepath = self.urls[0]

    紧接着往下:


    def getHeader(self, package, checkfunc = None, reget = 'simple',
    cache = True):

    remote = package.returnSimple('relativepath')
    local = package.localHdr()
    start = package.returnSimple('hdrstart')
    end = package.returnSimple('hdrend')
    basepath = package.returnSimple('basepath')
    if(basepath is not None and basepath[:8]=="media://"):
    basepath = self.urls[0]

    这样就ok了。
    不过这只是yum的bug。。
    新版的就没有这个问题了。。。
    只是贴出来。。。供大家有个参考。。