程序包管理之YUM解析

前言:

   yum是rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,如果直接使用rpm直接安装程序包也可以,但是需要自己手工解决程序包依赖性的问题,可能程序包的依赖性非常复杂,那么直接使用rpm安庄,就会非常麻烦,而使用YUM安装就会自动解决依赖性的问题。大大简化了安装过程。 

YUM客户端配置文件:

  /etc/yum.conf:为所有仓库提供公共配置

  /etc/yum.repos.d/*.repo:为仓库的指向提供配置

YUM的主配置文件:

blob.png

主配置文件含义:

1、cachedir:yum 缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum

2、keepcache=0:缓存是否保存,1保存,0不保存

3、debuglevel:除错级别,0-10,默认是2

4、logfile:yum的日志文件,默认是/var/log/yum.log

5、exactarch:在更新的时候,是否允许更新不同版本的RPM包,不如是否在i386上更新i686的RPM包;

6、obsoletes=1:允许更新陈旧的RPM包;

7、gpgcheck=1:是否检查GPG,一种秘钥方式签名

8、plugins=1:是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件;

9、installonly_limit=5:允许保留多少个内核包;


仓库指向的定义:

      [repositoryID]  (yum仓库的ID)

      name=some name for this repository (yum仓库的名称) 

      baseurl=url://path/to/repository/ (repodata的位置,一般指向上一级目录)

      enabled={1|0}  (1为启用,0为关闭)

      gpgcheck={1|0}  (是否检查gpgkey,1为检查0为不检查)

      gpgkey=URL     (gpgkey的路径)

yum仓库配置示例:

1、yum仓库的配置文件位于/etc/yum.repos.d目录下

blob.png

2、在该目录下新建一个new.repo的文件,文件名可以任意起,但是需要以.repo来结尾,在文件里写入yum仓库的配置信息;

blob.png

      如此yum仓库配置完成了,可以使用yum repolist命令查看yum仓库

blob.png

yum list命令可以显示所有的程序包:

凡是以@符号开头的都是已经安装上的程序包,以anaconda命名的都是在安装操作系统时安装的包

blob.png

   让我们看看yum源里都有些什么内容,在这里我们修改一下yum源的地址,在本地镜像里可以更清楚的知道源里所包含的内容:

blob.png

   从上面这幅图里我们可以看到yum源里包含rpm包的目录,repodata索引目录,GPGKEY文件,这三者用于支撑yum的运行

   索引是通过计算rpm包的元数据而生成的,yum通过索引来做安装、卸载、查询rpm包的,如果缺少索引文件也就是repodata文件,yum就无法正常工作,接下来我们在额外的路径下下载一些rpm包,手工生成repodata文件,并写入yum仓库的配置文件,该文件下只包含rpm包和repodata索引文件,看看是否能运行yum仓库:

  

示例:

1、该目录下只有四个rpm包:

blob.png

2、将rpm包移入新建文件夹Packages,并使用createrepo命令创建repodata索引文件

blob.png

3、修改yum配置文件,指向新的路径

blob.png

4、yum list

blob.png

5、尝试安装varnish的rpm包

blob.png

安装成功!我们自己手工制作的yum仓库配置完成。

原创文章,作者:因为有你,如若转载,请注明出处:http://www.178linux.com/39659

(0)
因为有你因为有你
上一篇 2016-08-24
下一篇 2016-08-24

相关推荐

  • rpm包管理

    rpm包管理 由于 RPM 是透过预先编译打包成为 RPM 文件格式后,再加以安装的一种方式,还能够进行数据库的记载。 所以 RPM 有以下的优点: RPM 内含已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰; RPM 在被安装前,会先检查系统的硬盘容量、操作系统版本等,可避免档案被错误安装; RPM 档案本身提供软件版本信息、相依属性软件名…

    Linux干货 2016-08-21
  • Linux find命令使用详则

    find命令 find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录欲文件。并且将查找到的子目录和文件全部进行显示。 语法 find(选项)(参数) 选项 -amin<分钟>:查找在指定时间曾被存取过的文件或者目录,单位以分钟计算; -ane…

    2017-08-03
  • N22-第一周练习作业-冥界之王

    1.描述计算机系统的组成及功能硬件组成(输入设备,输出设备,存储器,运算器,控制器) 输入设备:鼠标,键盘,麦克,声卡(输入声音),扫描仪,手写板等输出设备:显示器,声卡(输出声音),音箱,投影仪等存储器:内存,硬盘,磁带,CPU内部还可以分1,2,3级缓存运算器:主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CP…

    Linux干货 2016-08-15
  • M20 – 1- 第二周(2):课堂练习与作业

    课堂练习: 1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件和目录 [root@centos6 ~]# ls /var/l*[[:digit:]]*[[:lower:]] ls: cannot access /var/l*[[:digit:]]*[[:lower:…

    Linux干货 2016-08-02
  • bash的一些特性

    bash的字符串处理工具 字符串切片: ${var:offset:number} 取字符串的子串; 取字符串的最右侧的几个字符:${var: -length} 注意:冒号后必须有一个空白字符; 基于模式取子串; ${var#*word}: 其中word是指定的分隔符;功能:自左而右,查找var变量中所存储的字符串中,第一次出现word分隔符,删除字符串开头至…

    Linux干货 2016-08-24
  • 马哥教育网络21期+第十一周练习博客(下)

    马哥教育网络21期+第十一周练习博客(下) 3、描述DNS查询过程以及DNS服务器类别。 DNS:Domain Name Service 通俗的称为地址解析,使用TCP和UDP的53端口,是属于应用层的协议; DNS查询有2种方式:     递归查询:至发送一次请求,就能找到最终的结果的查…

    Linux干货 2016-09-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-26 14:06

    内容整体很完整,图文结合,通过实际操作验证了自己的想法,且总结成为经验,这是个很好习惯,希望坚持下去哦。