YUM仓库的建立
YUM仓库是采用C/S架构的,也就是简单的客户端服务端价架构,YUM repository一个很好的例子就是CentOS的安装光盘.
我们分别来看看服务端和客户端
服务端包括数据和元数据
数据指的就是所有可以安装的rpm包,他们通常保存在Packages文件夹里面
元数据就是这个服务端yum 仓库的属性,他们一般是由.sqlite.bz2(对于CentOS6和7)结尾的压缩文件,保存在repodata文件夹里面
下图显示的是在centos安装光盘的根目录下,package为rpm安装文件所在目录,repodata为元数据文件所在目录
由此可以得知包含repodata的目录就是YUM repository
客户端
YUMrepository 的主配置文件是/etc/yum.conf
这个文件包含了所有repository的集中配置。
其中需要注意的是cachedir=这行,显示从repository cache的元文件和安装文件存放路径。
Keepcache这一行如果值是1,表示要保存安装文件和元文件,0为不用保留.
一个YUM repository从客户端的角度来看就是一个仓库(base),base按不同用途大概有,base,updates, extra, 和eepel等等. 客户端要链接到不同的仓库,需要配置相应的文件,文件的目录在/etc/yum.repos.d/以repo结尾的文件,下图是一个系统自带的仓库默认配置文件/etc/yum.repo.d/CentOS-Base.repo
下面我们来详细分析下下图各个选项的含义
[base]这个就是这个要链接到的仓库的名,也就是repo id,这个id在一台机器要是唯一的
name:仓库别名可以不唯一,也叫 repo name
baseurl:指定仓库所在的文件,也就是repodata所有的目录, 这个可以是网络路径(http://,ftp://,nfs://)或本地路径(file///),还可以直接执行多个路径,需要新起一行,以空白开头.
Mirrorlist:指向一个baseurl文件.
gpgcheck=是否要做完整性校验,0为否,1为做
gpkey:指定完整性校验所需要的公钥路径
还有一个就是enabled=1或0,这个如果没有默认为1,作用是,是否开启这个链接.
一些变量的解释:
$releasever:当前程序的版本号如5,6或者7
$basearch:当前系统价格x86_64或者i386
有了这些变量我们就可以根据当前系统来选择与之相对应的库链接
下图是个荔枝,文件/etc/yum.repos.d/cdrepo.repo如果我们指向个光盘的库
一些需要常用命令:
yumrepolist 所以链接的库
yuminfo 包名:列出安装包详细信息
yumprovides 文件名:查看这个文件是由那个安装包产生的
例如: yum info htop
yuminstall 包名:安装包
yumreinsntall 包名:重新安装包
yumremove 包名:卸载包,需要注意的是,所有相关的其他程序也会随之卸载