yum和rpm的关系:yum是rpm的补充,是依赖于rpm的
程序包管理器的前段工具: yum(Yellowdog Update Modifier)
yum的工作原理
当本地客户端使用yum命令 ,下达安装命令时 yum命令通过本地配置文件告知它的可以使用的文件服务仓库,用yum所支持的文件共享机制访问文件服务器共享的rpm包,下载并缓存到本地以供分析,根据本地的分析结果查看这个包的依赖关系,依赖关系中需要的包本地有多少,还需要下载多少个,然后去yum仓库去获取那些尚未安装的包下载到本地安装
- 这个文件服务器叫做:repository(仓库)它的组成部分
- 需要的各rpm包
- 依赖关系、程序包安装后所能够生成的列表等元数据文件(每个rpm的名字,安装后提供哪些文件以及这些程序包之间的依赖关系等等)
yum客户端(本地端)基本功能
- 配置文件:指定各可用的yum仓库;
- 配置yum仓库的优先级(根据使用代价等选在)
- 缓存元数据:yum会到各可用yum仓库获取元数据,并缓存至本地
- 分析元数据:根据具体的操作请求完成元数据分析,可能包括依赖关系、文件列表等信息
- 执行具体操作
客户端配置文件指定对服务器配置文件:
ftp ftp://server/path/to/repo
http http://server/path/to/repo
nfs nfs://servr/nfs_path
file file:///path/to/path
yum 的使用
yum命里的使用格式–子命令
yum [options] COMMAND
erase 卸载
install:安装
repolist 显示各可用的仓库列表:list [all|installed(已安装过的)|available(可用)]:列出yum包
repolist[all|enabled(默认)|disabled]:列出所有可用的yum repo
clean [all|packeages(包)|metadata(元数据)|expire-cache(过期数据)|rpmdb(rpm数据)plugins]:清理缓存
info :显示包的详细信息
grouplist:列出所有的包组
groupinfo "package_group_name": 显示包组信息
三个跟开发相关的包组:
Desktop Platform Development:有图形程序时需安装此组
Server Platform Development
Development Tools
install package_name ..... 安装指定的程序包
reinstall package_name ....:重新安装指定的包
yum check-update:检查可升级的包
update packe_name ....:指定升级的程序包
要升级到指定版本要带版本号:
downgrade packe_name:降级
erase|remove pack_name ....:依赖的包也会被卸载
whatprovides|provides /path/to/somefile: 查询某文件是由谁提供的
groupinstll "group_name" 安装包组
groupremove ”group_name“:卸载组
yum history 查看yum的命令历史
要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中
/etc/yum.conf ;核心配置
/etc/yum.repo.d/*.repo ;关于仓库的配置放在后辍为.repo
配置文件格式:由两段组成。类似window的ini配置文件
[main]:主配置段
[repo]:仓库配置段
配置main
cachedir :缓存路径
keepcache=0 ;删除缓存过的已安装的rpm包(可能)1不删
debuglevel=2;调试级别
logfile ;日志文件
exactarch ;版本精确匹配,1为要必须精确匹配,0为不需要满足这种需求
obsoletes ;废弃的包?
gpgcheck=1;是否检验其来源合法性及其完整性 1验证
plugins=1;是否支持yum插件
installonly_limit =5 ?
bugtracker_url = 什么bug的什么等等
文件的最后有句提示:
#PUT YOUR REPOS HERE OR IN separate files named file repo
#in /etc/yum.repos.d
意思是 如果自己要配置什么就在下面开始写配置信息,或者去 /etc/yum.repos.d下面写配置文件
配置repo
[repo_ID]
name=String
baseurl=仓库的访问路径
enabled={1|0}1,是否启用此仓库,1表示启用。0表示不启用
gpgcheck={1|0}1,验证gpg。0表示不验证
gpgkey=公钥地址 (可以是本地,也可以是服务器端路径)
cost=定义此仓库开销,默认为1000
[base]
name=Centos 6.5 X86_64 release (仓库名)
baseurl=(指向仓库的url路径)
enabled=(是否启用)
gpgcheck=(是否验证gpg)
gpgkey (公钥地址)
安装本地包
install /path/to/package_file
手动禁止检查来源及完整性:--nogpgcheck
如果系统为Centos 5,开发包组为”Development Tools“和”DeveLopment Libraries“
如何系统为centos 6,常用的开发包为”Development tools“和"Server Platform Development"
yum配置文件中可用的宏
$releasever:程序的版本,对Yum而言指的是redhat-relrase版本。只替换为主版本号,如Redhat6.5 则替换为6
$arch:系统架构
$basharch:系统基本架构,如i686,i586等的基本架构为i386
$YUM0-9:在系统定义的环境变量,可以在yum中使用
获取当前系统相应宏替换的办法
python
import yum,pprint
yb=yum.YumBase()
pprint.pprint(yb.conf,yumvar,width=1)
quit()