yum的目的是为了解决RPM依赖关系的问题,方便使用者进行软件的安装、升级等工作。
RHEL5中默认提供了对YUM的支持。
yum的基本工作流程:
服务器端:在服务器上面存放了所有的RPM软件包,然后通过命令分析每个RPM文件的依赖性,将这些数据记录成文件存放在服务器上。(HTTP、FTP)
客户端:安装软件是,通过yum服务器上记录的依赖性关系文件,下载依赖关系需要所有相关的软件,自动全部下载并安装。
yum仓库简单来说,就是rpm包的存放位置和元数据文件
元数据文件的各种信息:
primary.xml.gz
所有rpm包的列表,有依赖关系
每个rpm包安装生成的文件列表
filelists.xml.gz
当期那仓库中所有rpm包的所有文件列表
other.xml.gz
额外信息,rpm包的修改日志
repomd.xml
记录的是上面三个软件的时间戳和校验和
comps-rhel5-server-core.xml:rpm包的分组信息
yum仓库配置需要有一个yum源,我们将元数据文件(repodata)指向的目录作为yum仓库。
光盘作为yum源:
将光盘作为yum源时,只需要将光盘挂载至一个本地目录即可
# mount -r /dev/cdrom /media/cdrom
创建本地yum仓库:
1、createrepo 仓库路径 (createrepo也需要用软件包安装)
# createrepo /yum/VT
(前提是将yum源中的VT目录里的软件包复制到/yum目录中)
例:# cp /media/cdrom/VT/*.rpm /yum/VT/
2、为yum定义repo文件,指定yum仓库的路径
3、查看repo列表及其简要信息
如何为yum定义repo文件
在/etc/yum.repos.d/目录下创建以.repo结尾的文件,在里面定义如下:
- [Repo_ID]
- name=Description
- baseurl=
- ftp://
- http://
- file:///
- enabled={1|0}
- gpgcheck={1|0} # gpgkey=安全密钥的文件路径
(可定义两个yum源)
- yum的相关命令:
- list:列表
- all(查看仓库中所有软件包)
- 例: # yum list all zsh*
- available:可用的,仓库中有且尚未安装的
- install:已经安装的
- updates:可用的升级
- repolist:显示repo列表及其简要信息
- [all|enabled(默认)|disabled]
- clean:清理缓存
- [ packages | headers | metadata | dbcache | all ]
- install:安装 (可自动解决依赖关系)
- yum install PACKAGES_NAME
- -y:自动回答yes
- --nogpgcheck:不做gpg检查
- 例:# yum install -y httpd
- update:升级到最新版本
- uptade-to:升级为指定版本
- remove | erase:卸载
- -y:自动回答yes
- info:显示rpm包的简要信息 相当于"rpm -qi"
- yum info PACKAGE_NAME
- provides | whatprovides:查看指定的文件或特性是由那个包安装生成 相当于“rpm -qf"
- groupinstall:创建组
- groupupdate:升级组
- grouplist:显示组列表及其简要信息
- groupremove:删除组
- groupinfo:显示一个组中安装的软件包
- localinstall:本地安装
- yum localinstall /path/to/PACKAGE_FILE
- --nogpgcheck:不做gpg检查,即不检查其安全性和完整性
- 例:# yum localinstall -y httpd-devel-2.2.3-63.el5.i386.rpm
- localupdate:本地升级
以上即为使用yum仓库安装、卸载软件的过程。
转载于:https://blog.51cto.com/dongld/1156752