YUM
- 基于RPM包构建的软件更新机制
- 可以自动解决依赖关系
- 所有软件包由集中到YUM软件仓库提供
工作原理
yum依赖于环境,依赖于服务端和客户端,允许跨网络。
- yum 服务器存放rpm包和相关包的元数据
- yum客户端访问yum服务器进行安装或查询等
实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
服务端
客户端
主配置文件:/etc/yum.conf
仓库配置文件:/etc/yum.repos.d/*.repo
软件仓库的提供方式
# 本地源 本地目录
file://绝对路径
# FTP源 FTP服务 ftp://ip地址/站点里的路径
# 网络源 http://域名或者ip地址/站点里的路径
搭建阿里云仓库
执行
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
将阿里云镜像下载到/etc/yum.repos.d/目录下
yum claen all && yum makecache #清理缓存并且生成新的缓存
http方式搭建云仓库
服务端:192.168.128.10
客户端:192.168.128.10
1.服务端配置httpd服务
yum install -y httpd
2.挂载
切换到/var/www/html下
新建centos7
将光盘挂载到centos7下
3.开启httpd服务
4.客户端配置yum仓库
ftp方式搭建源
1.服务端配置vsftpd服务
yum install -y vsftpd
mkdir /var/ftp/centos7 #创建挂盘挂载目录
mount /dev/sr0 /mnt #镜像挂载
cp -rf /mnt/* /var/ftp/centos7/ &
mkdir /var/ftp/other # 创建目录repodata 数据文件
cd /var/ftp/other/
createrepo -g /mnt/repodata/repomd.xml ./ #工具建立仓库数据文件
systemctl start vsftpd
2.客户端配置yum仓库文件
vim /etc/yum.repos.d/centos7.repo
[centos7] #仓库类别
name=centos7 #仓库名称(说明)
baseurl=ftp://192.168.136.10/centos7 #URL 访问路径
enabled=1 #启用此软件仓库
gpgcheck=0 #验证软件包的签名
gpgkey=ftp://192.168.136.10/centos/RPM-GPG-KEY-CentOS-7 #GPG 公钥文件的位置
[other]
name=centos7
baseurl=ftp://192.168.136.10/other
enabled=1 #启用此软件仓库
gpgcheck=0 #验证软件包的签名
搭建本地epel源仓库
- 在可以连外网的情况下,可以使用国外源或阿里云仓库等。
- 但实际工作中,公司内网常常无法连接外网,这时可以提前搭建本地epel源仓库,即在一台可连通外网的服务器中提前下载好epel源的所有软件包,编写好仓库文件后,在离线的情况下也可以使用yum安装软件包。
- 之后其他主机可以通过http方式或ftp方式使用服务端的epel源仓库。
1.安装epel源
yum install epel-release
reposync -r epel -p /centos7/ & #下载同步epel源软件包,下载到/centos7/目录下,&表示放到后台下载
2.建立元数据
安装createrepo
yum -y install createrepo
使用createrepo建立元数据
createrepo -v /centos7/epel
3.配置yum仓库文件
vim epel.repo
客户端可以在本地使用http或ftp搭建
yum仅下载安装包
利用yum install --downloadonly命令
可以仅下载所需软件及其依赖包、而不安装软件,大大减少了无外网安装时找依赖包的问题
格式:yum install+软件名称 --downloadonly --downloaddir=指定rpm包存放路径
优先级
当有多个yum源的时候可以使用priority设置优先级