Total Pageviews

Monday 8 October 2012

Yum软件仓库配置



现在我们来说一下yum源的配置,大家都知道rpm –ivh xxx.rpm能安装软件,这是没有错的,但是如果哪天你要安装一个软件,发现一堆的依赖关系,关系多达几百个,错综复杂,你是不是会崩溃掉,这个情况在 默认没有安装桌面的环境中经常遇到,在init 3模式下安装init 5的X window,用rpm非疯了不可
YUM的使用
我们就以安装GCC为例吧
Rpm –ivh /media/Packages/gcc-4.4.6-4.e16.i686.rpm,命令本身是没错的,可是为什么安装不成功呢,看最下面,需要这么些 个包,其实这些包也依赖于其他的包,这就郁闷了吧,我们用yum来试试,yum可以自动判断依赖关系,直接帮我们解决
clip_image002
如下图,
Yum install gcc命令
它自动判断出了安装gcc的时候都依赖于哪些包,那些包又依赖于哪些包,直接给我们列出来,问我们是否要安装,我们直接“Y”就可以,
clip_image004


clip_image006
大家一定想知道,它为什么能自动判断吧,还有,它从哪里知道的要哪些软件包名,其实要配置一个仓库,这个仓库里就指定了我们的软件在哪里放着
clip_image008
clip_image010
上图就是我们的仓库文件的内容了,我来解释一下
[Steven]只是仓库名字,这个可以随意
Name=….这个你可以理解为仓库的描述,这个可以不写这一行
Baseurl=file:///Media/Server,这里解释一下为什么是///三个/,file:// ftp:// http://大家是不是很熟悉,file://的意思是文件在本地,在Linux中一切都以根开始的那路径上要加个/,所以最后是file:///media/Server,意思是在本地的/media/Server下
Enable=1,这里是说是否用户仓库,1是启用,0是不启用
Gpgcheck=0是说是否检查软件的KEY,我一般都不检查,各位随意
Gpgkey=…这里是说你的KEY文件在哪里,我不启用,所以也无所谓了
那我来问一下,是不是只要把所有的RPM都拷贝到一个文件夹,然后指向那个文件夹就行了呢,答案是不行的,我们要创建一个软件源才行
创建软件源 我们要用到createrepo这个命令,我们来安装一下
yum -y install createrepo
clip_image012
我们来规划一下,我们要在/packages下建立我们的软件源,首先,我们把这个文件夹建立一下
clip_image014
现在的目录是空的,然后我们来把软件拷贝到里面
clip_image016
clip_image018
现在只有一个文件夹,里面一堆软件包,我们来指定一下yum路径,看看能不能安装吧
clip_image020
没有repo…什么xml什么的,总的来讲就是没有“元数据”
我们来生成一下,现在先看一下目录结构
clip_image022
输入下图的命令,就开始了创建的过程,会有一会时间,和你有多少软件包有关系
clip_image024
看,上图中已经多了一个repodata的文件夹,现在我们再来用yum安装一下试试
clip_image026
clip_image028
完美成功.