Yum 全称是 (Yellow dog Updater Modified)×××狗更新 呵呵 借助于Yum,可以更新,卸载,升级rpm 软件包,并且他能够自动解决rpm包之间的依赖关系。能够让管理人员的工作更加轻松自如。特别是一些拥有大量linux主机的网络中,Yum机制显得就格外重要。
先说说他的工作机制吧,其实Yum的配置并不是很难,主要要理解Yum的工作机制,他为什么能够自动解决rpm之间的依赖关系,靠的又是什么?
简单的说,yum机制可有有两大部分组成,yum的服务端和yum的客户端。如图
Yum的客户端:
只需要在 /etc/yum.repros.d/*.repo 有repo 为后缀的文件来指向yum源即可(前提:物理和协议上能够通信)
Yum 的服务器端:
Yum的服务器有可以称为Yum仓库 它的构成必须有两个条件
① 以 .rpm为结尾的文件 也就是我们说的rpm软件包文件。
那么rpm包的来源可以可以分为三类
——Red Hat发布的RPM包集合 (就是各linux安装光盘中的)
——第三方组织发布的RPM包集合
——用户自定义的RPM包集合
② 有相应的仓库数据库文件, 仓库数据库文件中就是记录了每个rpm软件包中的包头信息以及各个rpm包之间的依赖关系, 这是YUM 机制的重点。
为了大家的理解,我在这分析了一下linux6.0的光盘结构
Linux 6.0 x 32 位
HighAvailability 高可用相关软件包,如rhcs等相关套件
Server 常规软件包,如mysql,httpd,开发工具,系统管理工具等
LoadBalancer 负载均衡相关软件包,如lvs,pirihan
ResilientStorage 存储方面的软件包
Linux 6.0 32位的光盘提供了这四个YUM仓库 他们四个每个目录下都有一个repodata的目录来存放仓库的数据库文件 .xml的文件是索引文件。
其他结构
Packages 真正存放所有软件包的目录images rhel安装进程所需要的引导和驱动镜像文件,
isolinux 镜像文件引导时所需要的文件
而linux6.0 x64位的光盘 提供了5个YUM仓库
新增加了 ScalableFileSystem 可扩展的文件系统 包括 SAN ISCSI 等
软件仓库是由若干的rpm软件包和仓库数据库所组成。怎样提供给客户端使用那?大致也是分为三种类型:
本地访问file:///…… 也就是本机既是rpm仓库, 有事yum的客户端
FTP 访问 ftp://……
WEB 访问 http://……
其实也可以分为两类: 本地访问 和 网络访问
Yum命令格式:
yum <options> <command> <package name...>
参数说明:
options: 常用的有:
-y : 如果在工作过程中如要使用者响应,这个参数可以直接回答yes
command:
list : 列出在yum server 上面有的RPM套件;若执行yum list installed则表示只列出系统中已安装的软件包,yum list available则表示只列出软件仓库中可用(尚未安装)的软件包,yum list update则表示列出可以升级版本的软件包。
install: 安装某个套件
update : 升级某个套件,如果update后面没有接套件名称,即更新目前主机所有已安装的套件.
info : 列出某个套件的详细信息,相当于rpm -qi package内容
clean : 将已下载到本机的packages或headers移除
remove : 移除已经安装在系统中的某个套件
yum updates 全部更新
yum updates package 更新指定程序包package
yum check-update 检查可更新的程序
yum info <package> 显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list <package> 显示指定程序包安装情况
yum search <keyword>查找软件包,当需要根据某个关键词来查找相关的软件包时,可以执行yum search 关键词,默认仅根据软件包名称和描述信息进行搜索。若执行yum search all 关键词,可以扩大搜索范围,例如,以下将搜索软件仓库并列出与httpd相关的软件包。Yum search all httpd
yum clean headers 清除header
yum clean packages 清除下载的rpm包
yum clean all 清除header与rpm包
yum grouplist ,列出所有组
yum groupinstall 安装某个软件组如:yum groupinstall Virtualization 安装虚拟化
下面就以上做几个实验案例
先来 以本地方式 搭建yum
我用的是linux6.0
配置YUM 仓库
挂载光盘
查看
仓库数据库目录
其他YUM 仓库的查看略
构建YUM仓库的条件都已经符合
下面要在/etc/yum.repos.d/ 下创建以 .repo结尾的文件指向yum仓库
内容如下
[ ] #来指定yum仓库的名称 可以自定义
name= #描述信息
baseurl=file:/// #本地访问
ftp:// #FTP方式访问
http:// #web访问
enable= # 1表示启用这个仓库 0 表示不启用 enable也可以是enabled
gpgcheck= # 1表示启用校验签名 0 表示不校验
gpgkey= #如上面值为1 校验 要指定GPG公钥位置
如file:///etc/pki/RPM-GPG-KEY-redhat-release
如值为0 则本行可以省略 或添加#号注释
我的配置如下
验证
没有加 -y 选项 会询问
如果要把其他的仓库全添加上 如下
下面分别是通过 ftp的方式和http的方式搭建YUM
FTP:
YUM SERVER 192.168.1.1
YUM CLIENT 192.168.1.2
Server:
先要搭建ftp服务 并且防火墙要允许通过
添加规则
添加ftp模块 vim /etc/syconfig/iptables-config
重启防火墙服务 启动ftp
ftp没有问题了 还要把yum仓库中的文件复制到ftp的目录中(直接挂载也行)
YUM 仓库配置完成
到192.168.1.2上面配置
先测试ftp是否能够正常登陆
这是因为ftp客户端软件没有安装 提示找不到命令
测试
YUM 客户端文件
我用scp命令把1.1上面的文件复制了过来 懒得写了
最终
如果第二次使用yum安装时提示一下错误
侧是/etc/yum.repos.d/ 目录下一定有两个或多个.repo结尾的文件 删除多余的即可,也可以mv成其他后缀的名称
WEB:
总体上是擦不多的,YUM 主要的就是仓库的配置和客户机的配置
先192.168.1.1上面安装web服务 注意防火墙
YUM仓库的rpm包文件和仓库数据库文件
然后客户端的配置
最后注重点一下 第三方YUM 源的问题
从网站上下载的软件包的集合 只有rpm软件包文件,而没有yum仓库数据库文件。这时候就要用到createrepo 软件了 他是专门用于生成yum仓库数据文件的
用法:createrepo --database 跟rpm集合的目录
如createrepo --database /var/other
安装
执行
end
转载于:https://blog.51cto.com/zhangyongli/1271565