对于一个初次接触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
Pingback引用通告: YUM详解之命令(二) | 精彩每一天
Pingback引用通告: Nginx的Yum安装 | 精彩每一天