|
一、yum介绍
Yum (Yellow dog Updater, Modified) 是一个在 Fedora 中的字符前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
rpm命令只能安装下载到本的.rpm格式的安装包,但是rpm并不能处理软件包之间的依赖关系,尤其是软件由多个.rpm包组成时,这时可以使用yum。
yum的主要是更方便的添加、删除、更新RPM包,自动解决软件包之间的依赖关系,方便系统更新及软件管理。yum通过软件仓库(repository)进行软件的下载、安装等,软件仓库可以是一个HTTP或FTP站点,也可以是一个本软件池,资源仓库也可以是多个,在/etc/yum.conf文件中进行相关配置即可。在yum的资源库中,会包括rpm的头信息(header),头信息中包括了软件的功能描述、依赖关系等。通过分析这些信息,yum计算出依赖关系并进行相关的升级、安装、删除等操作。
二、yum命令
命令格式:
yum [options] COMMAND
命令(COMMAND)列表:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
check 检测 rpmdb 是否有问题
check-update 检查可更新的包
clean 清除缓存的数据
deplist 显示包的依赖关系
distribution-synchronization 将已安装的包同步到最新的可用版本
downgrade 降级一个包
erase 删除包
groupinfo 显示包组的详细信息
groupinstall 安装指定的包组
grouplist 显示可用包组信息
groupremove 从系统删除已安装的包组
help 删除帮助信息
history 显示或使用交互历史
info 显示包或包组的详细信息
install 安装包
list 显示可安装或可更新的包
makecache 生成元数据缓存
provides 搜索特定包文件名
reinstall 重新安装包
repolist 显示已配置的资源库
resolvedep 指事实上依赖
search 搜索包
shell 进入yum的shell提示符
update 更新系统中的包
upgrade 升级系统中的包
version 显示机器可用源的版本
|
常用选项(options)列表:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-h, --help 显示帮助信息
-t, --tolerant 容错
-C, --cacheonly 完全从系统缓存中运行,不更新缓存
-c [config file], --config=[config file]
本地配置文件
-R [minutes], --randomwait=[minutes]
命令最大等待时间
-d [debug level], --debuglevel=[debug level]
设置调试级别
-e [error level], --errorlevel=[error level]
设置错误等级
-q, --quiet 退出运行
-v, --verbose 详细模式
-y, --assumeyes 对所有交互提问都回答“yes”
|
注:以上可用命令和选项由于yum版本的不同可能会有所有不同
三、yum使用示例
3.1 安装
安装软件时,较常用的安装方式有单独安装、包组安装两种方式:
?
|
1
2
3
4
|
yum install foo
yum groupinsall "Web server"
|
注:groupinsall是一种快捷安装方式,他会将包组中所需的软件包一次性全部安装。如,上例中的"Web server"包组可能会包含:httpd、 crypto-utils等软件包
3.2 更新、升级
对于已安装的程序,可以进行升级操作,有以下几种升级方式:
?
|
1
2
3
4
5
6
7
8
9
10
|
yum check-update
yum update
yum update foo
yum upgrade foo
yum groupupdate "Web server"
|
更新安装包时,可以使用update或upgrade,二者区别如下:
-
yum update是更新下载源里面的metadata,包括这个源有什么包、每个包什么版本之类的
-
yum upgrade会根据update后的元信息对软件包进行升级
3.3 删除
删除时,可以删除单个软件包或软件包组:
?
|
1
2
3
4
|
yum remove foo
yum groupremove "Web server"
|
3.4 查找
通过search命令可以查找软件包,而info命令可以用来显示软件包信息:
?
|
1
2
3
4
5
6
7
8
9
10
|
yum search foo
yum info foo
yum deplist foo
yum groupinfo "Web server"
yum list installed
|
四、yum的配置
YUM的配置文件分为main和repository两部分:
-
main-这个文件定义了全局配置选项,该文件只有一个。通常位于/etc/yum.conf
-
repository-定义了源-服务器的具体配置,可能是一或多个。通常位于/etc/yum.repo.d目录
可以通过以下命令查看yum的配置:
主要配置项如下:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
exclude=*.i?86 kernel kernel-xen kernel-debug
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
|
五、配置yum源
yum源配置文件通常位于/etc/yum.repo.d目录下,笔录所使用的CentOS 6.3发生版中包含以下几个配置文件:
?
|
1
2
3
4
5
6
|
$
总用量 16
-rw-r--r--. 1 root root 1926 6月 26 2012 CentOS-Base.repo
-rw-r--r--. 1 root root 637 6月 26 2012 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 626 6月 26 2012 CentOS-Media.repo
-rw-r--r--. 1 root root 2593 6月 26 2012 CentOS-Vault.repo
|
其中:
-
CentOS-Base.repo - 用于配置yum网络源
-
CentOS-Media.repo - 用于配置yum本地源
5.1 启用yum本地源
编辑CentOS-Media.repo文件:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
配置后,修改CentOS-Base.repo中的enabled配置项为enabled=0,或将CentOS-Base.repo文件删除或重命名,就会从本地源安装软件
5.2 添加yum网络源
网络源通地CentOS-Base.repo文件配置,配置一个源包括以下几个部分:
-
[serverid] - 源标识,必须唯一
-
name - 源名称,支付$releasever等变量名
-
mirrorlist或baseurl - 其中,
mirrorlist是一个保存了镜像列表列表的网站
baseurl是一个包库
如,以下是CentOS 6.3中的一个配置镜像:
?
|
1
2
3
4
5
6
7
|
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。 |