今天在虚机上通过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. SnakeYaml使用

    新的项目中需要将yaml文件解析为对象,调研了决定使用snakeYaml,下面看一看怎么使用. 一.引入依赖 因为项目是使用maven构建的,所以我们在pom文件中引入snakeYaml的依赖,如下: ...

  2. Maven修改默认中央仓库

    其实Maven的默认仓库是可以修改的.比如使用阿里云的镜像地址等. 修改步骤: 1.打开{M2_HOME}/conf/settings.xml文件,找到mirrors节点,修改如下代码: <mi ...

  3. 7.【nuxt起步】-Nuxt与后端数据交互

    接下来就是对接服务端接口,展示真实的数据 1.做了个虚拟接口地址:http://test.yms.cn/testjson.asp 输出数据: { "title": "单间 ...

  4. 【bzoi2006】【狼抓兔子】【最小割】

    Description Source: Beijing2006 [BJOI2006] 八中OJ上本题链接:http://www.lydsy.com/JudgeOnline/problem.php?id ...

  5. AVL平衡树的插入例程

    /* **AVL平衡树插入例程 **2014-5-30 11:44:50 */ avlTree insert(elementType X, avlTree T){ if(T == NULL){ T = ...

  6. python缺省参数

    def test(a,b=22): result=a+b print("resuLt=%d"%result) test(33,33) #缺省参数的意思就是,函数在有参数的情况下,调 ...

  7. svn 命令个

    svn 命令行下常用的几个命令 标签: svnpathdelete工作urlfile 2011-11-28 08:16 128627人阅读 评论(1) 收藏 举报  分类: 版本控制(8)  版权声明 ...

  8. 运维基础-Linux发展史、安装、基本操作

    Linux是目前互联网运维.大数据.云计算方向首选操作系统平台,能够在物理服务器Dell.hp.等server,以及当前主流的云平台,阿里云,腾讯云上面部署 发展史 . . .略过..... 物理服务 ...

  9. LeetCode:二叉树的非递归中序遍历

    第一次动手写二叉树的,有点小激动,64行的if花了点时间,上传leetcode一次点亮~~~ /* inorder traversal binary tree */ #include <stdi ...

  10. Java8新特性(一)概览

    最近看了好几段Java代码和以往的风格很不一样,都有点不太适应了,后来一查原来是Java8的新特性. 为了保持对技术的敏感性(面试...),这里我们一起来学习下Java8的新特性. 如果从技术角度来看 ...