rpm和yum

 

在linux中安装一个软件包并不像在windows中双击就能安装,因为在linux的一个特性就是组合小的软件完成大的功能,所以为了完成一个大的功能通常需要安装多个包来组合,各个包完成相应的任务而包又相互组合。

在redhat中安装一个包用的命令是:rpm

   rpm package management 最早是由redhat开发的用来在自己的系统上安装程序包,但由于其方便实用,在CentOS,Fedora,等系统中被采用。
另一种常用的是:dep           在debain,Ubuntu,上被使用。
在安装数据包的时候有时候有依赖关系:比如安装A需要B,安装B又需要安装C,但安装C又需要A,这样构成循环,虽说在rpm中可以强制安装包,但当有很多包有依赖关系时候,rpm或dep就很难解决了。所以就出现了yum:
yum 全称yellowdog update manager,是redhat在rpm的基础上进一步发展而成的,主要用于解决安装多个数据包时自动的解决依赖关系,自动的将多个包归为一组,同时提供了更多的选项来管理数据包。yum有客户端和服务器两部分,两部分可以在同一台主机上,也可以使分开的。服务器部分通常被称为yum库(因为其提供了所有的rpm数据包)。yum客户端的配置文件有两部分
1.       /etc/yum.conf       其内容有以下几部分

      cachedir    表示yum在本地的缓存位置

      keepcache      是否存储缓存(0不存,1存储)

      logfile       日志保存的目录

      gpgcheck        是否检查(0不检查,1检查)

      exactarch       版本是否精确匹配

      metadata        缓存保存的时间

      一般这个配置文件中的内容不需要改变。

2.       /etc/yum.repos.d/*.repo  文件的名字随意,但后缀必须是repo,而这个文件中可以存储多个库,redhat中的库有以下几个:VT,Server,Cluster,ClusterStorage,分别实现虚拟化,基本操作,集群,集群中的存贮。没个库内容除了路径不相同之外其他的都相同。每个库中通常包括以下几部分:

      [identify]        库的表示符

      name=描述信息

      baseurl=库的路径,必须写到包含repo的文件夹(最重要)

      gpgcheck=1/0 1表示检查每个包的校验码,0表示不校验

      enable=1/0       1表示启用该库,0反之

eg:
[ClusterStorage]

name=Instructor ClusterStorage Repository

baseurl=http://instructor.example.com/yum/ClusterStorage

gpgcheck=0

enable=1

表示ClusterStroage库所在的位置在baseurl=http://instructor.example.com/yum/中

其他的几个库也依照这种写法

 

yum命令的使用方法:

             yum   [option]    [command]        packagename

       eg:    yum   -y        install       httpd

             [option]中最常用的有:

                  -y        表示只要需确定的一直是yes

                  -q        使用静默模式

                  --nogpgcheck       不对数据包校验(要确认数据包的来源)

             [command]中的命令:

                  install       安装软件包

                  update      升级软件包

                  check-update       检查并升级

                  remove/erase       卸载软件包

                  list      默认列出所有软件包,还有二级选项

                         all/available/updates/installed/extra/recent/glob_exp                        

                  info           显示简要信息

                  provides   表示有那个包提供

                  grouplist        列出组

                  groupinstall         已经安装的组

                  groupinfo       组信息

                  localinstall    安装本地的包,但有依赖关系的包在库中时自动查找并安装

                  reinstall          重新安装

                  downgrade                降级

                  repolist                列出可用的库

 

tips

1.  在使用yum库时能够自动的解决依赖关系主要是根据repodata这个文件中定义的信息来实现的,其中filelists.xml.gz记录库中的包名,other.xml.gz记录其他内容,primary.xml.gz记录主要信息,repomd.xml是总括前面三个信息的。当有一堆软件包时,可以使用命令:createrepo来创建repodata这个文件夹和其中的内容。详细createrepo的使用方法,我会在以后的博客中介绍的。

2. glob_exp 表示:bash中的统配符  如* . 等