今天在虚机上通过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. windows上安装Ipython notebook

    最近有一个培训机构找笔者来做一份Python的培训教材,顺带着研究了下python notebook,发现很好很强大,现把初步的安装步骤记录如下:         1.安装Python         ...

  2. 全面解读java虚拟机(面试考点大全)d

    学习java以来,jvm的原理已经看过好多遍了,可是很多知识点都串不起来. 今天我把jvm相关知识整理了一下,看完之后肯定会对JVM很的清楚. JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构 ...

  3. [反汇编练习] 160个CrackMe之031

    [反汇编练习] 160个CrackMe之031. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  4. Linux 主机被入侵后的处理案例

    Linux主机被入侵后的处理案例 提交 我的留言 加载中 已留言 一次Linux被入侵后的分析 下面通过一个案例介绍下当一个服务器被rootkit入侵后的处理思路和处理过程,rootkit攻击是Lin ...

  5. 最新ssh2构架

    构架要求: 1.最新ssh2jar包. 2.使用全注解. 3.给锁机制 4.缓存. 5.使用权限构架. 6. 前台构架用bootstraps. 今天任务: 搭建php环境.看代码.整理ssh2架构. ...

  6. Leetcode_num2_Maximum Depth of Binary Tree

    题目: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  7. 40个国人iOS技术博客

    40个国人iOS技术博客 博客地址 RSS地址 OneV's Den http://onevcat.com/atom.xml 破船之家 http://beyondvincent.com/atom.xm ...

  8. 李洪强iOS开发之 - 项目架构

    李洪强iOS开发之 - 项目架构 01 - 在Appdelegate中设置跟控制器 //导入头文件

  9. eclipse 导入web项目时常见错误

    1. JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java B ...

  10. python中if __name__ == '__main__': 的解析(转载)

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...