今天在虚机上通过yum挂载iso源来安装rpm包,但提示错误,内容见下面。之前也有过这样的操作,

mount后,修改repo文件,然后就可以yum install  rpm包了;过程很简单啊。不知道这次为什么不行,后来网上查询了一下。

(结论:这个问题应该在rhel5低版本才出现)

=============分割线==============

在RHEL5版本中,很多人碰到这样类似的问题:

[root@master ~ 18:40:12]# yum install php-devel
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://1192656534.547140%233/php-devel-5.1.6-15.el5.i386.rpm: [Errno 4] IOError: <urlopen error unknown url type: media>
Trying other mirror.
Error: failed to retrieve php-devel-5.1.6-15.el5.i386.rpm from rpms
error was [Errno 4] IOError: <urlopen error unknown url type: media>

RedHat的官方解释是FC6不建议使用本地源,关于RHEL5的解释倒没查到,不过应该一样吧。

个人感觉是因为传输rpm包时用的协议错了,应该是file,却变成了media,应该是光盘中的xml文件里写错了,难道是个BUG?

网上查了一圈,解决方法一堆,有修改/usr/lib/python2.4/site-packages/yum下的yumRepo.py文件的,

有使用yum localinstall xxx.rpm命令的,这些都没用。有人说把DVD上所有的RPM包拷贝到硬盘,自己做个源,

我觉得这样就失去光盘镜像的意义了,舍进而求远。

总结了一下,还是用createrepo命令最好,方法如下:

先安装createrepo这个RPM包,手动安装吧,yum还没好呢。

然后用createrepo命令重建描述repository的XML文档。

createrepo的命令用法可以man一下,网上竟然没有人说明过,个人觉得几个参数还是有必要说明下的:

-u 指定base的url,其实就是待会yum的时候,下载rpm包的路径,所以一定要写对;

-o 指定XML文件的输出路径,你当然没办法把XML文件直接输出到光盘或者镜像中吧,所以最好也指定下。

举例如下:

RHEL5的光盘挂载在/mnt/cdrom下

[root@localhost ~]#mkdir /repo

[root@localhost ~]#createrepo -u /mnt/cdrom -o /repo /mnt/cdrom

OK,这个时候/repo下应该有repodata目录,里面就是XML文件啦。

接着修改/etc/yum.repo.d/下面的repo文件

把其中的baseurl=改成baseurl=file:///repo    ---就是XML文件所在的目录

然后[root@localhost ~]#yum clean all

一切正常了。

另外一个类似处理方法:

RHEL5.4可以直接使用光盘作yum源,而RHEL5.1不能直接用光盘中的源,否则会出现urlopen error unknown url type: media,

需要改造一番,注意这里提供的方法不用拷贝光盘中的大量文件.

1.将光盘镜像挂载到/media/RHEL/目录下

[root@Blinux Desktop]#mkdir /media/RHEL
[root@Blinux Desktop]#mount /root/rhel5.1.iso /media/RHEL -o loop

2.生成库文件

[root@Blinux Desktop]#mkdir /media/yum/
[root@Blinux Desktop]#rpm -ivh /media/RHEL/Server/createrepo-0.4.4-2.fc6.noarch.rpm
[root@Blinux Desktop]createrepo -o /media/yum/ -g /media/RHEL/Server/repodata/comps-rhel5-server-core.xml /media/RHEL/Server/

[root@Blinux Desktop]mount --bind /media/yum/repodate/ /media/RHEL/Server/repodate/

3.生成依赖关系

[root@Blinux Desktop]# vim /etc/yum.repos.d/rhel-debuginfo.repo

修改为类似

[rhel]
name=Red
baseurl=file:///media/RHEL/Server/
enabled=1
gpgcheck=0

[root@Blinux Desktop]# yum clean all

[root@Blinux Desktop]# yum makecache

RHEL5.1下的本地YUM源就这样OK了,注意,这里并没有拷贝大量的文件,而是挂载.

关于RHEL5中yum挂载iso源引起的问题(转)的更多相关文章

  1. 如何在 Linux 中挂载 ISO 文件

    在 Windows 中,我们常常使用 Daemon Tools 和 Virtual CloneDrive 等虚拟光驱软件挂载光盘镜像,下面我们一起来学习在 Linux 中如何挂载 ISO 文件. 在 ...

  2. Linux如何在虚拟机中挂载iso yum源

    首先,将作为源的iso的挂载到系统上. 代码如下: mount -o loop /dev/cdrom /mnt/iso/ 或者 mount -o loop /xxx/xxx.iso /mnt/iso/ ...

  3. 在centOS中加入本地ISO yum源

    注:本文转载自<liujun_live的博客>,感谢原博主的辛勤写作:原文地址:http://blog.sina.com.cn/s/blog_8ea8e9d50101em6f.html 在 ...

  4. Linux下挂载iso文件和配置yum本地源

    Linux的版本: [root@pbn ~]# head -n 1 /etc/issueRed Hat Enterprise Linux Server release 6.1 (Santiago) 1 ...

  5. Linux挂载iso镜像、配置本地yum源

    Linux挂载iso镜像.配置本地yum源 1.备份原yum源配置文件 [root@localhost ~]# ll /etc/yum.repos.d/ [root@localhost ~]# mkd ...

  6. CentOS 挂载iso文件配置yum源

    1.挂载iso 准备好centos的光盘镜像 挂载前的准备; mkdir -p /dev/centos mkdir -p  /mnt/local_yum 挂载 mount -o loop /opt/s ...

  7. RHEL7挂载ISO做本地yum

    测试环境,网络yum源没有本地yum源下载速度快!Yum比起RPM装包的好处就是可以自己处理依赖关系,也就是自己安装相关的依赖包,用起来也是很方便,但是删包的时候也会删除依赖包,这里要非常小心 01. ...

  8. Redhat系列使用ISO或者光盘制作yum本地安装源

    适用系统:redhat系列 示例系统:CentOS 6x86_64 环境:虚拟机   有时候做实验又不能联网的情况下想装一款软件时,经常会搞的头大:难道要去系统镜像中一个个拷出来再用rpm安装?各种依 ...

  9. Centos 中扩展 软件源 的安装 之 Remi ( 为yum 扩展软件源 )

    平时一般都是使用Ubuntu的,最近用起来Centos 发现软件安装方便不是很方便,   在安装过程中接触到了这么一个概念,  就是为yum 安装 扩展源,  这里下面要说的就是其中的  Remi  ...

随机推荐

  1. Java中ArrayList的初始容量和容量分配

    1.实例化ArrayList时默认不输入大小是10个,并且如果增加到11个时不会报错,会自动扩容. 2.获取指定索引的值时就必须保证ArrayList有这么多个. 3.推荐在new ArrayList ...

  2. 在Intellij上面导入项目 & AOP示例项目 & AspectJ学习 & Spring AoP学习

    为了学习这篇文章里面下载的代码:http://www.cnblogs.com/charlesblc/p/6083687.html 需要用Intellij导入一个已有工程.源文件原始内容也可见:link ...

  3. linux与python

    linux一般都装有python,但是版本不一定,需要自己查看,如果版本过低,需要重装.查看python版本方法,直接在命令行输入 python,此时会进入python命令行,同时会显示python版 ...

  4. nightwatch.js - scroll until element is visible

    .getLocationInView() Determine an element's location on the screen once it has been scrolled into vi ...

  5. 测试 MD

    上面是一张图片 总店?

  6. Block系列1:初识block

    //-------1.定义函数----- //1.函数 int sum(int a,int b) { return a+b; } //------------------2.声明--------- / ...

  7. C语言的面向对象设计之 X264,FFMPEG 架构探讨

    FFMPEG架构分析 使用面向对象的办法来设想这样一个编解码库,首先让人想到的是构造各种编解码器的类,然后对于它们的抽象基类确定运行数据流的规则,根据算法转换输入输出对象. 在实际的代码,将这些编解码 ...

  8. Cisco策略路由(policy route)精解(转载)

    原文:http://www.guanwei.org/post/Cisconetwork/07/Cisco-policy-route_8621.html 注:PBR以前是CISCO用来丢弃报文的一个主要 ...

  9. WPF中的数据绑定Data Binding使用小结

    完整的数据绑定的语法说明可以在这里查看: http://www.nbdtech.com/Free/WpfBinding.pdf MSDN资料: Data Binding: Part 1 http:// ...

  10. 【leetcode】Jump Game I, II 跳跃游戏一和二

    题目: Jump Game I: Given an array of non-negative integers, you are initially positioned at the first ...