yum Yellowdog Uupdate Modifier
yum 属于C/S架构,从yum仓库中获取所需的软件包。yum仓库中存储两类数据。软件包自己和包的元数据。数据就是各个rpm包自己。元数据包括:包名,版本信息,各包所包含的文件列表,包之间的依赖关系,包分组信息
centos5 使用的xml来保存这元数据,而centos6以上使用一个关系型数据库sqlite保存元数据。
yum安装软件请求过程
第一步:获取元数据,缓存于本地。/var/cache/yum
第二步:yum客户端程序在本地分析元数据文件,并结合本地系统环境(查看本地都安装了那些包)获取依赖关系。而后分析须要那些依赖的程序包
第三步:根据分析的结果,联系yum仓库下载各个程序包后,一并安装。
第四步:删除下载的数据包,以释放空间。
yum经常使用仓库种类。
base库一般为发行版光盘中所提供的程序包
updates库 最新的软件更新包。
epel库是fedora的仓库php
推荐地址:http://mirrors.ustc.edu.cn/fedora/epel/
nginx
优先级为,base , updates, epel
extra库,其它不经常使用的包
使用yum机制
1,确保有yum repo可用,经常使用的网络源有搜狐 http://mirrors.sohu.com 网易http://mirrors.163.com 。 rpm包的文件服务器上repodata目录的父目录即是可用的仓库
rpm访问时使用的协议有ftp,http,nfs,文件协议(file:///)
2,yum客户端
提供repo配置文件,主配置文件在/etc/yum.conf。,yum仓库配置文件在/etc/yum.repo.d/*.repo
yum仓库配置格式
[REPOID] yum的ID
name=仓库描述
baseurl=file:///mnt/cdrom 这里指定yum源的路径
enable={0|1}若是不定义,默认为启用些配置文件
gpgcheck={0|1}1表示检测0为不检测
gpgkey=url #指定key文件的位置
mirrorlist=url to a file#这个文件中有多个镜像列表
cost=1000#若是指定了多个仓库,指定一个访问的开销。范围1-1000,默认为1000
yum 客户端命令的子命令
repolist {enable|disabled|all} 列出可用的repo仓库名
list {all|installed|avail} 列出仓库中的软件包,all所有,installed已安装的,available为能够安装的
示例:yum list php* 这句命令能够显示已经安装与可安装的包
info 软件包名称:查看软件包的描述信息,不管安装过与未安装过的包都会显示
grouplist 显示软件包组信息。
groupinfo “包组名” :显示包组属性信息,包组名要用隐号隐起来
clean all 清理缓存
install 安装程序包,后面跟上软件包名。
yum install <包的绝对路径> 这种方法能够安装不属于仓库中的软件包,但会解决依赖关系。前师是仓库中有此包所需的包。适用centos6。 sql
示例:yum install /media/Packages/pdf-tools-0.29a-2.1.el6.noarch.rpm数据库
groupinstall 安装包组,后面要跟上包组名,包组要用双隐号隐起来
reinstall 从新安装软件包,后面跟上软件包名。
update 升级软件包,后面跟上要升级的软件包名。
能够直接跟上软件包的名称和版本号,直接升级到指定版本。
downgrade 降级软件版本,后面跟上指定的软件版
remove 卸载软件包,若是其它软件包依赖此软件包,其它软件包也会被卸载
erase 卸载软件包
whatprovides 查询某个文件由那个软件包生成的
provides 同上
groupremove 卸载包组,包组要用双隐号隐起来
check-update 检查可用的升级包。
yum仓库建仓
前题须要一个文件共享服务器,把rpm包放在文件服务器上的一个目录下,并用createrepo命令建立yum库。而后把客户端向此yum源
把rpm包都复制到文件服务的目录里,而后须要安装createrepo命令的软件包,
centos
#yum install createrepo-0.9.9-18.el6.noarch.rpm #createrepo /data/yum/
配置客户端使用此仓库就能够了缓存
[test] name=test baseurl= #由于80端口httpd占用了,而服务器上用的是nginx,改成8000了 enable=1 gpgcheck=1 gpgkey=http://127.0.0.0:8000/yum/RPM-GPG-KEY-CentOS-6
fedora的yum源配置文件,全部系统都适用bash
[epel] name=CentOS-$releasever - EPEL #baseurl=http://mirrors.ustc.edu.cn/fedora/epel/$releasever/$arch/ baseurl=http://mirrors.ustc.edu.cn/fedora/epel/$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6