打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux软件包管理神器
##########################################
AUTHOR:          Honway_Liu
DATE:                 2012-02-24
##########################################
一、什么是YUM
二、为什么要使用YUM
三、怎样使用YUM
四、YUM的组成及工作原理
五、YUM的配置
六、YUM的简单使用
##########################################
一、什么是YUM
YUM是“Yellow dogUpdater, Modified”的缩写,可执行程序名为yum。YUM是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。在红帽企业版Linux 5中引入YUM的重要原因之一,便是YUM能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装,便于管理大量系统的更新问题。
二、为什么要使用YUM
使用yum来安装软件包,要比使用rpm命令安装软件包方便的太多太多了。最主要的一点,我想还是因为yum可以自动的解决依赖关系吧。使用过linux安装二进制软件包的人应该都遇到过rpm包之间的依赖关系,特别是循环依赖,真的是很让人头疼,有时候为了安装一个软件包,不得不浪费一整天的时间。yum自动解决依赖关系,为我们缩短了安装软件包所使用的时间,提高了工作效率,像这样一个堪称尤物的家伙,怎么能让人不爱呢。yum也可以使用一条命令来直接升级系统上所有要升级的软件包,你说,不爱她你爱谁呢。
三、怎样使用YUM
yum的使用其实很简单,我们只需要把yum软件包安装好,然后改下yum源配置文件就可以了,就可以从别人的yum源上自动下载软件包,然后自动安装。不过本文章的意义不是在于教你改配置文件,然后安装yum包,然后再利用yum命令来安装软件包,而是要自己动手,自己做YUM源,自己使用自己的YUM源,充分的理解YUM的工作原理。
四、YUM的组成及工作原理
yum由两部分组成,一部分是yum源(或称之为yum仓库|其实就是软件包仓库),另一部分就是yum的客户端,说白了就是安装好yum软件,可以使用yum命令的客户机。
当我们使用yum命令来安装一个软件包的时候,yum会根据yum的配置文件(/etc/yum.repos.d/*.repo)来查找yum源,然后下载yum源上的数据文件缓存到本地,以便再次查询的时候,提高查询速度。只有第一次才会下载缓存文件。完成之后,如果要安装的软件包在软件仓库里,那么就开始根据服务器上依赖关系文件里面的定义,看是不是有依赖其它软件包,如果有,会提示用户有依赖关系,是不是要安装,用户回答y的时候,开始自动解决依赖关系直到完成软件包的安装。如果没依赖关系,也会提示用户,找到了要安装的软件包,是不是现在安装,如果用户输入y,则开始安装,如果直接回车,默认是不安装的。一个yum命令,会开启一个yum事务,所以,如果你正在执行yum命令,然后别人登录到了你在的服务器,这时候他是不能执行yum命令的,这时候的yum进程是被锁定的,只有当你的yum命令执行完成后,事务结束,别人才可以使用yum命令。
五、YUM的配置
5.1      配置客户端
客户端的配置为两步,一是安装软件包,二是改配置文件
我的机器上安装了以上软件包,直接使用rpm -ivh就可以安装了,安装完成后,这一步就算是完成了
5.1.2更改配置文件
yum的配置文件有两部分:主配置文件和yum源配置文件
主配置文件
[root@Honway ~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum                 缓存目录
keepcache=0             是否保存缓存
debuglevel=2   调试级别
logfile=/var/log/yum.log 日志文件
distroverpkg=redhat-release
tolerant=1        允许出错(如果有多个软件包,当有某个包已经安装的时候,是否继续,1表示允许)
exactarch=1
obsoletes=1
gpgcheck=1      安装的时候,是不是检测检测软件包的签名信息
plugins=1 启用插件功能
再来看一下yum怎么指定yum源的,文件位于/etc/yum.repos.d/目录下,在这个目录中所有以.repo结尾的文件,都会被yum认为是yum的yum源配置文件。其写法如下
[id]
name=custmed yum repository
baseurl=ftp://192.168.0.254/pub/Server
gpgcheck=0[0禁用|1启用]
enabled=0[0禁用|1启用] (默认开启,该项可不写)
其中id就是一个名字,可以随便写。
name是对id的一个描述信息。
baseurl这里有三种写法,也代表了yum支持的三种协议,远程协议有ftp://和http://,本地yum源的file:/// 是三条斜线
gpgcheck是不是检测签名的
enabled是不是启用这一项,一个yum.repo配置文件中,可以写多项,每一项的都是以[id]开始的,每一个[id]都可以认为是一个独立的段
5.2      配置YUM源(YUM仓库|YUM服务器端)
要配置YUM源,我们要使用一个命令,叫做createrepo,这个软件包需要安装,在系统光盘Server目录中(RHEL5)直接使用rpm -ivh命令安装即可。
安装完成后,就可以开始创建yum源了。为了演示效果,我这里拷贝一下光盘VT目录,对VT进行创建YUM源。
直接使用命令createrepo 后面跟要对哪些软件包进行创建(这里指的是软件包所在的目录名),创建完成后,就会在该目录出现一个目录,叫repodate
repodate目录: yum源的元数据文件目录
primary.xml.gz  此yum源中定义所有rpm文件及其彼此间的依赖关系,还包含了每一个rpm包中的文件名
filelists.xml.gz: 此yum源中每一个包中文件的文件相关信息;
other.xml.gz:   额外信息,比如changelog等
repomd.xml  校验码和时间戳
comps-rhel5-server-core.xml 软件包的分组信息;(除非有分组,否则不会出现,有时候分组需要自己手动创建)
这样,一个YUM源就算是创建完成了,是不是很EASY啊,创建完成后,我们还可以接着对其它的软件包进行创建,可以对Server目录或者其它目录进行创建,也可以对我们自己制作的RPM包进行创建,把要创建YUM源的所有软件包放到一个目录里面,然后使用createrepo后面跟软件包所在的目录就可以了。
到这里,我们就算是创建完YUM源了我们改一下yum客户端配置文件,就可以直接使用了,因为客户端和服务端是在同一台机器上,所以我们可以不用FTP或HTTP服务,直接使用file:///。
六、YUM的简单使用
yum [options] [command] [package ...]
command is one of:
* install package1 [package2] [...]
* update [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* remove | erase package1 [package2] [...]
* list [...]
all| installed | available | updates
* info [...]
* provides | whatprovides feature1 [feature2] [...]         查询指定的文件是由哪个软件包提供的
* clean [ packages | headers | metadata | dbcache | all ]     清除缓存
* makecache
* groupinstall group1 [group2] [...] 安装指定的软件包组
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]         显示软件包组
* groupremove group1 [group2] [...]                删除指定的包组
* groupinfo group1 [...]                      查询指定包组的信息
* search string1 [string2] [...]
* shell [filename]
* resolvedep dep1 [dep2] [...]
* localinstall rpmfile1 [rpmfile2] [...]        安装下载好的rpm文件
* localupdate rpmfile1 [rpmfile2] [...]               升级下载到本地的rpm包
* reinstall package1 [package2] [...]        重装软件包,不删除原来的.
* downgrade package1 [package2] [...]  降级软件包
* deplist package1 [package2] [...]
* repolist [all|enabled|disabled]              显示yum源
* help [command]             显示指定软件包的help信息
以上是从man yum里面弄出来的,只对一些常见的进行了解释,其它的,自己翻译自己理解吧,呵呵。
下面贴下自己的yum源配置文件。
[Server]
name=Server
baseurl=http://192.168.0.254/pub/Server
gpgcheck=0
enabled=1
[VT]
name=VT
baseurl=http://192.168.0.254/pub/VT
gpgcheck=0
enabled=1
[Cluster]
name=Cluster
baseurl=http://192.168.0.254/pub/Cluster
gpgeheck=0
[ClusterStorage]
name=ClusterStorage
baseurl=ftp://192.168.0.254/pub/ClusterStorage
gpgcheck=0
enabled=1
本文出自 “吖吖個呸” 博客,请务必保留此出处http://gm100861.blog.51cto.com/1930562/788535
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于rpm与yum源的问题?
yum源创建及rpm与yum命令
yum 命令讲解
Linux程序包管理之yum
Linux学习之CentOS(二十四)
Linux 平台上的软件包管理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服