我们在介绍yum本地源的时候 先给大家谈谈RPM安装。
RPM(Redhat Package Manager)解决源码包安装的众多依赖关系,,旨在校验安装卸载查询升级等管理软件操作。
安装:rpm -ivh filename.rpm
升级:rpm -Uvh filename.rpm
卸载:rpm -e filename.rpm
查询软件的描述信息:rpm -qpi filename
列出软件的文件信息:rpm -qpl filename.rpm
查询文件数据哪个RPM: rpm -qf filename
虽然RPM能帮助用户查询软件相关的依赖关系,但还是要靠我们自己解决,如依赖关系众多这对于我们而言也是不小的负担
YUM仓库则是为进一步简化RPM管理软件难度而设计的,能分析出所需软件包及相关依赖关系,自动从服务器下载软件包并安装。
YUM:Yellowdog Updater Modified
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。(bing 词典)
yum可以检测软件间的依赖性,并提示用户解决,将发布的软件放到yum server,然后分析这些软件的依赖关系,然后将软件相关性记录成列表。当客户端有软件安装请求时,yum客户端在yum服务器上下载记录列表,然后通 过列表信息与本机rpm数据库已安装软件数据对比,明确软件的依赖关系,能够判断出那些软件需要安装。
列表信息保存在yum客户端的/var/cache/yum中,每次yum启动都会通过校验码与yum服务器同步更新列表信息。
使用yum需要有yum repositories,用来存放软件列表信息和软件包。yum repositories可以是http站点,ftp站点,本地站点。
路径格式:
ftp://hostname/PATH/TO/REPO REPO指repodata所在路径的父目录
http://hostname/PATH/TO/REPO file:///PATH/TO/REPO
本文中的“本地YUM源”包括三种类型:一是直接使用CentOS光盘作为本地yum源,优点是简单便捷,缺点是光盘软件包可能不完整(centos 7 Everything 总共才6.57G);二是同步CentOS官方源到本地(相当于创建了一个公共镜像),优点是最靠谱,缺点是占空间费流量;三是创建完全自定义的本地源,优点是灵活性最大,缺点是只是作为其他源的补充。
一、使用CentOS光盘作为本地yum源
(1) 实体机上直接放入光盘
(2) VMware Workstation 虚拟机:虚拟机-->可移动设备-->CD/DVD-->连接复制代码
代码如下:
mkdir /mnt/cdrom #创建目录mount /dev/cdrom /mnt/cdrom #挂载umount /mnt/cdrom #卸载若不想每次都要放光盘,那就复制光盘文件到本地硬盘吧[code]cp -avf /mnt/cdrom /yum # -a:该选项保留链接、文件属性,并递归地复制目录 2、创建repo文件复制代码
代码如下:
cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF[Local]name=Local Yumbaseurl=file:///yum/gpgcheck=1(是否检查)gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7enabled=1(启用为1)问:为什么连createrepo软件都不用安装?
createrepo 的作用是创建索引文件的(位于repodata文件夹),光盘中连GPG-KEY都有了。
二、如何为CentOS创建公共镜像
详细说明见官方中文文档:
提供一个SHELL脚本,然后cron自动运行~~
脚本稍作修改,换成中科大的镜像源。可用镜像列表见:
复制代码
代码如下:
localpath="/mirrors/CentOS"mirror="mirrors.hustunique.com::centos"rsync="rsync -avzH --delete"</p> <p>verlist="7"baselist="centosplus extras fasttrack os updates"archlist="x86_64"</p> <p>for ver in $verlistdofor base in $baselistdofor arch in $archlistdoremote=$mirror/$ver/$base/$arch/mkdir -pv $localpath/$ver/$base/$arch/$rsync $remote $localpath/$ver/$base/$arch/donedonedone</p> <p>三、创建完全自定义的本地源
把平时收藏的一些RPM软件包放在一个目录里,就变成一个自定义源了,可以用YUM来管理,灵活性相当大。
官方教程:
1、创建本地yum仓库
复制代码
代码如下:
mkdir -p /yum/local #可以有N级目录cp ... #复制RPM包到上述目录2、创建repo文件
复制代码
代码如下:
cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF[Local]name=Local Yumbaseurl=file:///yum/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7enabled=13、安装createrepo
复制代码
代码如下:
yum install createrepo #使用yum安装createreporpm -ivh <a href="http://mirror.centos.org/centos/7/os/x86_64/Packages/createrepo-0.9.9-23.el7.noarch.rpm">http://mirror.centos.org/centos/7/os/x86_64/Packages/createrepo-0.9.9-23.el7.noarch.rpm</a>4、创建索引
复制代码
代码如下:
createrepo /yum yum makecache #更新缓存YUM命令使用
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包 升级软件包
yum remove 软件包 移除软件包
yum clean alla 清楚所有仓库缓存
yum grouplist 查看系统中已经安装的软件包
yum check-update 查看可更新软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall软件包组 安装制定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询制定的软件包组信息