Linux系统之前端程序包管理器-yum

【前言】 当我们使用rpm命令安装程序时,时常会因为程序包之间的依赖关系而焦头烂额,使得很多程序的安装过程复杂而费力,那有没有一种工具可以帮我们解决这个问题呢?当然有啦!这就是我们今天的重点yum,让我们一块来学习总结下吧!【什么是yum】 yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。【yum的工作机制】 yum 的关键之处是要有可靠的yum仓库(yum repository),它可以是http 或ftp 站点,也可以是本地软件池,其必须包含两类数据: 1、数据:也就是各个rpm包; 2、元数据:其包含了rpm 包的各种信息,包括包名、描述,功能,提供的文件,依赖关系、包分组信息等。正是通过收集汇总这些元数据 并加以分析,才能自动化地完成余下的任务。在各版本系统下其的存储格式为:CentOS5: *.xml; centos6,7: *.sqlite 其实从架构的角度来看,yum的工作机制为C/S架构,如下图所示:

【yum的使用机制】 1、确保有yum repo(yum仓库的配置文件)可用;rpm包的文件服务器,repodata目录所在父目录就是一个可用仓库。 2、yum客户端需要指供repo配置文件,指明yum仓库访问路径及各种属性信息。有两种配置方法: 法一:修改主配置文件(中心配置文件):/etc/yum.conf; 法二:在/etc/yum.repos.d/下创建或修改*.repo文件(存储一个或几个相关仓库的配置信息)。 在.repo文件定义一个yum repo指向的格式: [REPOID] #定义软件源的名称,该名称是可以自定义,同时在该服务器上所有repo文件中是唯一的。注意[]中不能有空格; name=Some name for this repository #定义软件仓库的名称,支持像$releasever 、$basearch这样的变量;注意=两边不能有空格; baseurl=url://server/path/to/repository #指定真正的仓库所在地,可以给定多个,下面的URL不能顶格书写,URL中也支持$releasever 、$basearch这样的变量; $releasever/os/$basearch enabled={0|1} #配置此仓库是否启用,默认为1生效; gpgcheck={0|1} #配置是否验证安装包,0为不进行验证,1为进行验证; gpgkey=URL #指定用于验证的秘钥文件 cost={1..n} #默认为1000,指定访问此仓库的开销(在客户端指定) 补充说明: 1、$basearch: 系统基本架构,如i686,i586等的基本架构为i386; $releasever: 程序的版本,,对yum而言指的是redhat-release版本;只替换为主版本号,如RedHat 6.5,则替换为6; 2 、baseurl种url支持的协议有:、ftp://、nfs://、file://、 rsync://;当需要指定多个URL且不想通过baseurl来指定时, 我们可以把多个URL存放在一个文件里,通过mirrorlist=存放URL的文件来指定yum仓库。 3、一个.repo文件可以定义多个yum仓库。[root@CentOS6 yum.repos.d]# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo [root@CentOS6 mnt]# cat /etc/yum.repos.d/CentOS-Media.repo [c6-media] name=CentOS-$releasever – Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6[root@CentOS6 yum.repos.d]#

【yum客户端命令的使用】

1、列出所有可用repo yum repolist {enabled|disabled|all} enabled:可用的;disabled:不可用的;all:所有的 ,不带参数默认为列出可用的[root@CentOS6 yum.repos.d]# yum repolist enabled Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile repo id repo name status c6-cd CentOS-6 – cd 4,802 repolist: 4,802 [root@CentOS6 yum.repos.d]# yum repolist disabled Loaded plugins: fastestmirror, refresh-packagekit, security repo id repo name c6-media CentOS-6 – Media repolist: 0 [root@CentOS6 yum.repos.d]# yum repolist all Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile repo id repo name status c6-cd CentOS-6 – cd enabled: 4,802 c6-media CentOS-6 – Media disabled repolist: 4,802 [root@CentOS6 yum.repos.d]#

人情似纸张张薄,世事如棋局局新。

Linux系统之前端程序包管理器-yum

相关文章:

你感兴趣的文章:

标签云: