一、定义
Yum(全称为 Yellowdog Updater Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软包,无须繁琐地一次次下载、安装
二、 yum组成部分:
(1)、文件服务器(共享rpm包):
原理:通过yum所支持的文件共享机制将各rpm包通过文件服务共享
repository: 仓库
1、数据:程序包;
2、元数据:程序包的属性,包括大小,版本,依赖关系等,通过createrepo命令生成,保存在repodata中
(2)、yum客户端:
1、配置文件:指定各可用的yum仓库;
2、缓存元数据:yum会到各可用yum仓库获取元数据,并缓存至本地;
3、分析元数据:根据具体操作请求完成元数据分析, 可能包括检查依赖关系、文件列表等信息;
4、执行具体操作:
客户端配置文件指定对应服务器访问方式:
ftp ftp://server/path/to/repo
http http://server/path/to/repo
nfs nfs://server/nfs_path
file file:///path/to/repository
三、配置文件:
(1)、配置文件内容
要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中:
主配置文件:保存在/etc/yum.conf中
仓库配置文件:保存在/etc/yum.repos.d/*.repo中
配置repo:
[repo_ID] repoID必须唯一
name=String 仓库描述信息
baseurl=仓库的访问路径
enabled={1|0} 仓库是否可以使用
gpgcheck={1|0} 是否对程序做校验
gpgkey=公钥文件(可以在本地,也可是服务器端路径)
cost=定义此仓库开销,默认为1000
Ex:
说明:本配置baseurl地址是局域网文件服务器地址。
(2)、配置文件变量
yum有内置变量,用于保存当前平台的相信息;
1、$releasever: 当前OS发行版的主版本号;
例如,对CentOS 6.6 x86_64,主版本号为6;
2、$arch:平台
3、$basearch: 基础平台, 例如i686, i586, i486以及i386的基础平台同为i386;
4、$YUM0-$YUM9:可定义变量
假如:
baseurl=http://repo.magedu.com/centos/$releasever/$basearch
若当前系统为:CentOS 6.6 x86_64
实际路径:http://repo.magedu.com/centos/6/x86_64
四、yum命令
1、仓库管理:
yum repolist [all|enabled|disabled]
all:列出所有yum仓库
enabled:列出开启的yum仓库
disabled:列出关闭的yum仓库
2、缓存管理:
1)、清理缓存:
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
packages:清理数据包缓存
metadata:清理元数据缓存
expire:清理过期缓存
rpmdb:i清理rpm数据库缓存
plugins:清理插件缓存
all:清理所有缓存
2)、创建缓存
yum makecache
说明:只下载在线yum仓库元数据,将其创建为缓存;
3、程序包管理
1)、程序包查看
yum list {avaiable|updates|installed}
avaiable:查看未安装程序包
updates:查看更新程序包
installed:查看已安装程序包
yum check-update:查看需要升级的程序包
2)程序包的管理
(1)、安装
yum install package...
(2)、升级
yum update package...
(3)、卸载
yum remove|erase package...
说明:所有依赖的程序包一并卸载
(4)、重新安装
yum reinstall package...
(5)、降级
yum downgrade package...
3)程序包组的管理
(1)、安装
yum groupinstall group...
(2)、升级
yum groupupdate group...
(3)、卸载
yum groupremove group...
(4)、显示指定包组详细
yum groupinfo group...
4、可用选项
-y:自动回答为“yes”
--disablerepo= 临时禁用指定的repo
--enablerepo= 临时启用指定的repo
--nogpgcheck:禁止做包校验
五、制作yum repository
1、利用发行版光盘做yum repository
(1) 挂载光盘到指定挂载点,如/media/cdrom
#mkdir /media/cdrom
#mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 新建yum repo配置文件,类似如下所示:
#cd /etc/yum.repos.d
#vim local.repo
输入以下内容:
#yum repolist 查看在线repo
#yum install php 测试利用光盘安装程序
2、创建本地yum repository
#yum install createrepo 安装创建元数据命令(先要完成光盘做yum repository)
#mkdir -pv /var/test/yum/xen4 递归创建yum repository目录
#yum install lftp 安装lftp
#cd /var/test/yum/xen4
#lftp 172.16.0.1/pub/Soureces/6.x86_64/xen-4.1 进入文件服务器中
>mget *.rpm 下载rpm包到本地
>bye 退出
#createrepo /var/test/yum/xen4 创建数据包元数据
#cd /etc/yum.repos.d
#vim local.repo
在内容下面加以下内容
#yum repolist 查看所有在线repo
#yum list all xen* 查看所有xen开头的包
#yum install xen 测试安装xen包
3、创建ftp yum repository
#yum install vsftpd 安装vsftpd服务包
#cd /var/ftp/pub
#cp -r /var/test/yum/xen4/ ./ 复制xen4及内容到pub目录下
#service vsftpd start 启动vsftpd服务
#service iptables stop 关闭防火墙
#cd /etc/yum.repos.d
#vim localtest.repo
输入以下内容
在浏览器中输入:
ftp://172.16.21.67 能正常看到文件夹内容OK
4、内容补充
创建ftp后,能显示自建的文件夹,而不显示内容
1.关闭防火墙
setup -->firewall configuration
2.关闭selinux
#vim /etc/selinux/config
修改 SELINUX=disable
如何让vsftpd随开机启动
#chkconfig --list vsftpd 查看vsftpd状态
#chkconfig vsftpd on 修改vsftpd开机启动