YUM详解之配置(一)

对于一个初次接触Linux的入门者来说,安装软件是比较困扰的事情,如何才能够快速安装、升级软件对于系统的使用者来说,至关重要,下面将逐个详细介绍强大的YUM功能。

一、什么是YUM?

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及Centos中的Shell前端
软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖
性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、
删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

本机环境:CentOS 5.2

二、YUM的配置文件

$ cat /etc/yum.conf

  • yum下载的RPM包的缓存目录,在此存储下载的rpm包和数据库
cachedir=/var/cache/yum
  • 缓存是否保存1=保存,0=不保存
keepcache=0
  • 调试级别0-10,默认2
debuglevel=2
  • 日志文件
logfile=/var/log/yum.log
  • 指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
distroverpkg=redhat-release
  • 也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则 yum不会出现错误信息。默认是0。除了上述之外,还有一些可以添加的选项,如exclude=,排除某些软件在升级名单之外,可以用通配符,列表中各个 项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
tolerant=1
  • 有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。
exactarch=1
  • 这是一个update的参数,简单的说就是相当于upgrade,允许更新陈旧的RPM包
obsoletes=1
  • 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。
gpgcheck=1
  • 是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
plugins=1
  • Note: yum-RHN-plugin doesn’t honor this.
metadata_expire=1h
  • 允许保留多少个内核包,默认
installonly_limit = 3
  • repo文件目录(第二部分讲解),默认为/etc/yum.repos.d
# in /etc/yum.repos.d
  • 设置代理
proxy=http://10.199.75.12:8080

三、 repo文件详解

1、什么是repo文件?

repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!我们以一份系统自带的/etc/yum.repos.d/CentOS-Base.repo文件做为实例来探讨,所有服务器设置都应该遵循如下格式(#号后面是我加的注释)

  • [base]
    #方括号里面的是软件源的名称,将被yum取得并识别
  • name=CentOS-$releasever – Base
    #这里也定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,(下同)
  • failovermethod=priority
    #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择
  • exclude=compiz* *compiz* fusion-icon*
    #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加
  • mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    #上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
  • #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    #上面的一行baseurl第一个字符是’#’表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
  • #enabled=1
    #这个选项表示这个repo中定义的源是启用的,0为禁用
  • gpgcheck=1
    #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
  • gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
    #定义用于校验的gpg密钥

四、举例

#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever – Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

五、如何使用repo文件

1、创建aliyun.repo文件,文件内容如下:

[base-aliyun]
 name=CentOS-$releasever - Media
 baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
 gpgcheck=1
 enabled=1
 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-5

2、# yum makecache

3、centos默认的安装源在官方centos.org上,而redis在第三方的yum源里,所以无法安装,非官方的yum推荐用fedora的epel仓库。

# yum list | grep epel-release
# yum install epel-release.noarch

YUM详解之命令(二):http://www.hangdaowangluo.com/archives/259

YUM详解之配置(一)》上有2条评论

  1. Pingback引用通告: YUM详解之命令(二) | 精彩每一天

  2. Pingback引用通告: Nginx的Yum安装 | 精彩每一天

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>