一、概述:
1、常见程序包前端管理器:
yum:Yellow dog Updater, Modified简写,由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于 RPM 包管理的字符前端软件包管理器。
apt:Advanced Packaging Tools简写,是Debian及其衍生发行版,基于dpkg包管理器的前端工具。
2、yum特点:
1)、可自动解决程序安装或卸载时的依赖性关系问题;
2)、可以同时配置多个不同的资源库,且可使用线上资源库;
3)、配置文件简洁;
4)、保持与rpm数据库的一致性;
3、yum工作机制:
C/S架构:ClientàService
Service服务端:yum仓库;
数据:各个rpm包;
元数据:数据文件(包名、版本信息、各包所包含的文件列表、依赖关系、包分组信息);
Client客户端:yum命令;
4、工作原理:
以安装为例:
1)、获取yum仓库元数据,缓存于本地/var/cache/yum/目录;
2)、yum客户端程序在本地分析元数据文件,并结合本地系统环境(已安装的包)做出要安装的程序包的决策;
3)根据决策联系Yum仓库,下载各程序包缓存于本地后,一并进行安装;
yum使用机制:确保有yum repo可用,rpm包的文件服务器,repodata目录所在父目录就是一个可用仓库;
二、yum服务配置:
1、主配置文件(中心配置文件):
#/etc/yum.conf:指供repo配置文件,指明仓库访问路径及各种属性信息;
2、yum仓库配置信息:
#/etc/yum.repos.d/*.repo:一个或几个相关仓库的配置信息可保存为一个文件,文件名都以.repo结尾;
在.repo文件定义一个yum repo指向的格式:
^[REPOID] ^name=Some name for this repository 仓库名; ^baseurl=file:///media/cdrom 指明仓库路径,文件服务器类型包括:ftp,nfs,http,file; ^ file:///media/cdrom2 支持多个yum仓库,可在每一行指定一个路径; ^enabled={0|1} 是否启用此配置,1为启用,0为关闭; ^gpgcheck={0|1} 是否启用校验,1为启用,0为关闭; ^gpgkey=URL 若启用校验,指明密匙路径; ^cost={1..n} 指定访问此仓库的开销,默认为1000,数值越小优先级越高;
3、yum仓库类型:
base库:通常为系统发行版所提供的程序包;
updates库:为软件提供更新程序包;
epel库:提供额外的程序包;
4、yum配置文件中可用的四个变量:
^baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch $releasever:程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,如CentOS6.6,则替换为6; $arch:系统架构,如i386,x86_64, $basearch:系统基本架构,如i586,i686等的基本架构为i386; $uuid: $YUM0-9:在系统中定义的环境变量,可以在yum中使用;
获取当前系统相应变量替换结果的办法:
#python Python2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC4.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) Loadedplugins: fastestmirror, refresh-packagekit {'arch':'ia32e', 'basearch':'x86_64', 'releasever':'6', 'uuid':'ea249181-2f82-4c40-8c42-d51b3fce319a'} >>>quit()
5、如何自建yum仓库:
rpm包的文件服务器,repodata目录所在父目录就是一个可用仓库;
1)、如何自建基于光盘(镜像)的yum repo:
CentOS 6的光盘镜像中已经制作好了repodata目录,yum仓库指定至挂载目录即可;
2)、自建提供yum仓库的中心服务器(ftp,http,nfs);
以http为例,步骤:
(1) 安装httpd程序,并启动服务:
安装: #rpm -ivh httpd- 或者 #yum install httpd 启动服务: #service httpd start #chkconfig httpd on
(2)httpd的文档根目录为/var/www/html:
创建子目录,存放某相关的所有rpm包
(3)为仓库生成元数据文件,以使能够作为仓库使用:
createrepo: 制作yum仓库元数据的工具
#rpm -ivh createrepo- 或者 #yum install createrepo #createrepo /path/to/rpm_repo/
(4)配置yum客户端使用此仓库即可
三、yum客户端命令的使用:
1、列出所有可用repo,{所有|开启|关闭}:
#yumrepolist {all|enabled|disabled}
2、列出rpm包,{所有|安装过的|未安装的}:
#yumlist {all|installed|available}
根据关键字查找某包:
#yumlist *KEYWORD*…
3、包的描述信息:
#yum info package_name
4、列出所有的包组信息:
#yum grouplist …
5、显示包组的信息:例如组中包含的程序包列表:
#yum groupinfo "GROUP NAME" 必要软件包 ... 默认软件包 ... 可选软件包 ...
CentOS6 跟开发相关的包组:
Development Tools,ServerPlatform Development,Desktop Platform Development
6、清理缓存:
#yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}
7、安装程序包
#yum installpackage_name -y:确认安装
重新安装:
#yum reinstall package_name
8、卸载:
#yum remove|erasepackage_name
9、升级:
检查可用的升级包:
#yum check-update
升级:
#yum updatepackage_name
若升级到指定版本,需指明版本号:
#yum update x-1.3.2
降级:
#yum downgradepackage_name
10、查询某文件是由哪个包安装生成的:可用作查找未安装命令;
yumwhatprovides|provides /path/to/somefile
10、安装包组:
yum groupinstall"GROUP NAME"
11、卸载包组:
yum groupremove"GROUP NAME"
本文出自 “小马的学习记录” 博客,请务必保留此出处http://masachencer.blog.51cto.com/8683770/1670628