今天在虚机上通过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. android TextView 设置字体大小

    package com.example.yanlei.yl4; import android.graphics.Color;import android.os.Bundle;import androi ...

  2. 【IntelliJ idea/My/ecplise】启动项目前,修改配置JVM参数

    My/ecplise下都是一样的: IDEA下:

  3. Pixhawk之姿态解算篇(1)_入门篇(DCM Nomalize)

    一.开篇 慢慢的.慢慢的.慢慢的就快要到飞控的主要部分了,飞控飞控就是所谓的飞行控制呗,一个是姿态解算一个是姿态控制,解算是解算,控制是控制,各自负责各自的任务.我也不懂.还在学习中~~~~ 近期看姿 ...

  4. cocos2d-x 事件分发机制 ——触摸事件监听

    cocos2d-x 3.0 出来已经好久了,也已经用3.0写了几个小游戏,感觉3.0的事件触发机制太赞了,随这里总结一下.也算是对知识的一种回顾和加深理解. 3.0的事件分发机制中.须要也只须要通过创 ...

  5. [转] RabbitMQ介绍

    转自: http://lynnkong.iteye.com/blog/1699684 1      什么是RabbitMQ? RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初 ...

  6. hdu1827之强联通

    Summer Holiday Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. oracle insert/update

    insert into table (,,) values (,,) where update table set (,)=(select , from ) where

  8. 【转】VMware 11.0 简体中文版|附永久密钥

    VMware 11.0 简体中文版|附永久密钥 昨天,VMware虚拟机11.0 简体中文版正式发布,值得注意的是新版抛弃了32位系统支持,安装包体积大幅减小, 新增Windows 10 技术预览版支 ...

  9. AQS实现公平锁和非公平锁

    https://www.cnblogs.com/chengdabelief/p/7493200.html AQS(AbstractQueuedSynchronizer类)是一个用来构建锁和同步器的框架 ...

  10. Continuous Integration with Selenium

    I have seen a lot of queries from people who basically want to know how to blend Selenium, Maven, an ...