linuxYUM仓库部署

199 阅读3分钟

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设置优先级