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

简介:

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

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

一、什么是YUM

          YUM是“Yellow dog Updater, Modified”的缩写,可执行程序名为yumYUM是一个在FedoraRedHat以及SUSECentOS中的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认为是yumyum源配置文件。其写法如下

[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客户端配置文件,就可以直接使用了,因为客户端和服务端是在同一台机器上,所以我们可以不用FTPHTTP服务,直接使用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

相关文章
|
20天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
112 25
|
22天前
|
缓存 Linux UED
Yum与Dnf软件包管理器使用指南
Yum是RedHat、CentOS等Linux发行版中广泛使用的软件包管理器,它为用户提供了便捷的软件包安装、更新、管理等功能。然而,随着技术的发展,Red Hat已经开始将其软件包管理逐渐转移到dnf上。Dnf是yum的增强版,不仅继承了yum的核心功能,还在性能、用户体验等方面进行了诸多优化。在使用上,dnf与yum非常相似,两者在命令层面基本相同,只是名字有所区别。本文将详细介绍yum和dnf的常用命令及其使用方法,帮助用户更好地管理和维护系统中的软件包。
60 3
|
22天前
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
25 4
|
4月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
415 0
|
4月前
|
缓存 应用服务中间件 Linux
yum 命令下载软件包到本地
在 Linux 系统中,使用 `yum` 命令可以下载软件包但不安装。通过 `yum` 的下载缓存功能,可以快速获取所需软件包。常用命令包括:`yum list available` 列出可安装的软件包,`yum download nginx` 下载特定软件包,`yum download nginx-1.18.0` 下载特定版本,`yum download -resolve nginx` 下载软件包及其依赖,`yum download nginx -d /path/to/download/directory` 指定下载目录
423 11
|
4月前
|
缓存 应用服务中间件 Linux
yum 命令下载软件包到本地
在 Linux 系统中,使用 yum 命令可以下载软件包但不安装。通过 yum 的下载缓存功能,可以快速获取软件包。常用命令包括:`yum list available` 列出可安装的软件包,`yum download nginx` 下载特定软件包,`yum download nginx-1.18.0` 下载特定版本,`yum download -resolve nginx` 下载软件包及其依赖,`yum download nginx -d /path/to/download/directory` 指定下载目录
291 1
|
5月前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
79 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
|
5月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
5月前
|
缓存 前端开发 Linux
Linux yum 命令
10月更文挑战第1天
91 2
|
5月前
|
算法 安全 Ubuntu
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
247 5