yum (Yellowdog Update Modifier) 程序包管理器的前端工具
是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包.
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
要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中:
主配置 /etc/yum.conf
仓库配置 /etc/yum.repos.d/*.repo
配置文件格式:由两段组成,类似windows的ini配置文件
[main] :主配置段
[repo] :仓库配置段
配置文件格式,文件 存放于/etc/yum.repos.d/ 并以repo结尾的文件
[repo_id]
name=repo_name 显示的名称,可以是任意的字符串
baseurl=url 软件路径可以是网络上的,也可以是本地的
gpgcheck={0|1} 是否启用包来源合法性验证
enabled={0|1} 是否启用仓库
gpgkey=公钥文件(可以在本地,也可是服务器端路径)
cost=1000 仓库开销,用来做优先级,默认不指定就是1000 数值越小,优先级越大
示例以光盘为rpm源配置仓库mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
vim /etc/yum.repos.d/cdrom.repo
[base-cdrom]
name=cdrom_repo
baseurl=file:///mnt/cdrom/ # 一般为repodata所在的目录,这里面有rpm包的元数据
gpgcheck=1
enabled=1
gpgkey=file://mnt/cdrom/RPM-GPG-KEY-CentOS-6
保存退出,yum repolist 可以查看是否配置成功
yum 命令使用:
格式:
yum的各命令:
安装
install package_name ...: 安装指定的程序包
reinstall package_name ...: 重新安装指定的程序包
groupinstall "group_name":安装指定的包组# yum install httpd
查找
repolist [all|enabled|disabled]: 列出所有可用yum repo
list [all|installed|available]: 列出rpm包
info package_name: 列出包的描述信息
grouplist: 列出所有包组
groupinfo "package_group_name":显示包组信息
升级
check-update: 检查可升级的包
update package_name ...: 升级指定的程序包
如现在的版本:x-1.2.1, x-1.2.2, x-1.2.3
要升级到指定版本需指定版本号:yum update x-1.2.2
降级 downgrade package_name:
删除
erase|remove package_name ...: 删除己安装的包,会连依赖的包一起删除
groupremove "group_name": 卸载指定的包组
查询
whatprovides|provides /path/to/somefile: 查询某文件是由哪个包安装生成的# yum provides */ifcofnig # 这样可以查询ifconfig这个命令由哪个包提供的
清除元仓库数据
clean [all|packages|metadata|expire-cache|rpmdb|plugins]: 清理缓存
安装本地包:(yum 安装本地的rpm包依旧会检查软件来源合法性的,无法通过的不予安装。需要安装则要禁止检查。)
install /path/to/package_file
手动禁止检查来源及完整性:--nogpgcheck
yum install /tmp/zsh-2.3.1-2.el6.x86_64.rpm --nogpgcheck
yum配置文件中可用的四个宏:
$releasever: 程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,如RedHat 6.5,则替换为6;
$arch: 系统架构
$basearch: 系统基本架构,如i686,i586等的基本架构为i386;
$YUM0-9: 在系统中定义的环境变量,可以在yum中使用;
获取当前系统相应宏替换结果的办法:
# python
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum,pprint
>>> yb = yum.YumBase()
>>> pprint.pprint(yb.conf.yumvar,width=1)
Loaded plugins: fastestmirror, refresh-packagekit
{'arch': 'ia32e',
'basearch': 'x86_64',
'releasever': '6',
'uuid': 'ea249181-2f82-4c40-8c42-d51b3fce319a'}
>>> quit()
三个跟开发相关的包组:
Desktop Platform Development:有图形程序时需安装此组;
Server Platform Development
Development Tools