YUM前端程序包管理器

一、概述:

1、常见程序包前端管理器:

 yumYellow dog Updater, Modified简写,由Duke University团队,修改Yellow Dog LinuxYellow Dog Updater开发而成,是一个基于 RPM 包管理的字符前端软件包管理器。

 aptAdvanced Packaging Tools简写,Debian及其衍生发行版,基于dpkg包管理器的前端工具。


2yum特点:

 1)、可自动解决程序安装或卸载时的依赖性关系问题;

 2)、可以同时配置多个不同的资源库,且可使用线上资源库;

 3)、配置文件简洁;

 4)、保持与rpm数据库的一致性;


3yum工作机制:

 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配置文件,指明仓库访问路径及各种属性信息;

YUM前端程序包管理器_第1张图片


2yum仓库配置信息:

#/etc/yum.repos.d/*.repo:一个或几个相关仓库的配置信息可保存为一个文件,文件名都以.repo结尾;


YUM前端程序包管理器_第2张图片

 

.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,数值越小优先级越高;


3yum仓库类型:

 base库:通常为系统发行版所提供的程序包;

 updates库:为软件提供更新程序包;

 epel库:提供额外的程序包;


4yum配置文件中可用的四个变量:

^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仓库指定至挂载目录即可;

 

YUM前端程序包管理器_第3张图片

 2)、自建提供yum仓库的中心服务器(ftphttpnfs);

  以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}

wKiom1WWSvewVovlAACHP_CofJw157.jpg

2、列出rpm包,{所有|安装过的|未安装的}

#yumlist {all|installed|available}


 根据关键字查找某包:

#yumlist *KEYWORD*…

YUM前端程序包管理器_第4张图片

3、包的描述信息:

#yum info package_name

YUM前端程序包管理器_第5张图片


4、列出所有的包组信息:

#yum grouplist …

YUM前端程序包管理器_第6张图片


5、显示包组的信息:例如组中包含的程序包列表:

#yum groupinfo "GROUP NAME"
必要软件包
...
默认软件包
...
可选软件包
...


 CentOS6 跟开发相关的包组:

  Development ToolsServerPlatform DevelopmentDesktop 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

YUM前端程序包管理器_第7张图片


10、安装包组:

yum groupinstall"GROUP NAME"


11、卸载包组:

yum groupremove"GROUP NAME"

本文出自 “小马的学习记录” 博客,请务必保留此出处http://masachencer.blog.51cto.com/8683770/1670628

你可能感兴趣的:(linux,yum,rpm,包管理器)