Linux软件包管理神器-->YUM

作者:佚名 上传时间:2019-04-08 版权申诉

##########################################

AUTHOR: Honway_Liu
DATE: 2012-02-24
##########################################
一、什么是 YUM
二、为什么要使用 YUM
三、怎样使用 YUM
四、 YUM 的组成及工作原理
五、 YUM 的配置
六、 YUM 的简单使用
##########################################

一、什么是 YUM

YUM 是“ Yellow dog Updater, 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 配置客户端

客户端的配置为两步,一是安装软件包,二是改配置文件

Linux软件包管理神器-->YUM
我的机器上安装了以上软件包,直接使用 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 源。
Linux软件包管理神器-->YUM
Linux软件包管理神器-->YUM

直接使用命令 createrepo 后面跟要对哪些软件包进行创建(这里指的是软件包所在的目录名),创建完成后,就会在该目录出现一个目录,叫 repodate

Linux软件包管理神器-->YUM

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


本文转自 gm100861 51CTO博客,原文链接:http://blog.51cto.com/gm100861/788535

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
Linux软件包管理神器-->YUM
########################################## AUTHOR: Honway_Liu
Linux yum软件包管理方法
今天小编就为大家分享一篇Linux yum软件包管理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PDF
41KB
2020-09-19 23:34
Linux软件包管理--YUM
在上一篇博客《Linux软件包的管理--RPM包管理器》中详细讲述了RPM,但是存在一个问题?就是RPM不能自动解决软件包之间的依赖性。所以就出现了增强版的RPM管理器-YUM。
linux命令:yum软件包管理
yum 命令简介: 在线安装、升级、卸载软件等操作 。
软件包管理yum管理软件
yum管理 优点:基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装, 可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 官方源配置 etc/yum.rep
PDF
490KB
2021-01-14 22:05
yum软件包管理命令.doc
yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。 基于 RPM 包管理,能够从指定的服
DOC
181KB
2020-12-31 10:11
Linux yum管理
yum源管理 命令: #yum repolist //查看yum源信息 #yum -y install 软件名 //安装软件 #yum -y remove 软件名 -y(不用输yes) //卸载软件
PDF
28KB
2021-01-17 02:25
linux yum安装管理
linux yum安装管理,linux 中的yum配置与管理
doc
0B
2018-12-14 19:11
Linux 软件包管理器-----yum配置详解一
一、yum简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及Ce
linux软件包管理rpm和yum使用视频教程
06.1 软件包管理-简介.mp4 06.2.1 软件包管理-rpm命令管理-包命名与依赖性.mp4 06.2.2 软件包管理-rpm命令管理-安装升级与卸载.mp4 06.2.3 软件包管理-rpm
TXT
147B
2021-04-24 04:20