【Linux网络服务】搭建yum仓库

166 阅读5分钟

yum仓库

一、什么是yum

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。

YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(Duck University)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。 要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。

二、yum的工作原理

yum依赖于环境,依赖于服务端和客户端,允许跨网络。

YUM基于C/S模式

  • yum 服务器存放rpm包和相关包的元数据

  • yum客户端访问yum服务器进行安装或查询等

三、YUM的实现过程

9fdffb8ddb3b361c537d11d7a126d38.jpg

先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

服务器(RPM包和元数据缺一不可)

  • RPM包 (存放在包文件夹Packages中)
  • 元数据(存放在元数据文件夹repodata中,其中包含:目录(软件的目录),软件的依赖关系,软件的分组)

本地仓库类型

  • 光盘仓库(基本仓库)
  • epel 扩展仓库

四、yum配置文件

主配置文件

主配置文件位置:/etc/yum.conf

image.png

仓库设置文件

yum仓库文件位置:/etc/yum.repos.d/*.repo

image.png

日志文件

日志文件位置:/var/log/yum.log

image.png

五、yum的命令

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum whatprovides\精确查找
yum install\安装具体软件包
yum update所有软件升级,更新内核具体软件升级
yum upgrade只更新软件包,但不更新内核具体软件更新
yum remove\卸载具体软件
yum history查看当前yum操作历史\
yum history info\加序号列出某次事务的详细信息
yum history undo\加序号卸载序号里安装的软件
yum history redo\加序号重新执行序号里的操作

包组

命令不加关键字加入关键词、软件包、软件包组
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum groupinstall\安装具体软件包组
yum group update所有包组升级具体包组升级
yum groupremove\卸载具体包组软件

注意

当使用 “yum remove 软件名” 未将软件包卸载干净时,可以使用“yum history undo 序号”进行卸载,可以完整卸载整个软件包,没有残留。

六、yum仓库搭建方式

软件仓库的提供方式

七、搭建本地yum仓库

1. 以http方式搭建yum仓库

以http方式搭建yum仓库,在外网和内网的环境下都可以使用,但多用于内网。

服务端:192.168.1.20

客户端:192.168.1.30

操作过程

步骤1:服务端安装hhtpd服务程序。

image.png

步骤2:服务端切换到/var/www/html/ 目录,新建子目录centos7,并将光驱挂载到centos7目录下。

image.png

步骤3:服务端关闭防火墙和selinux,启动httpd服务。

image.png

步骤4:客户端切换到/etc/yum.repos.d/目录,新建文件夹,编写yum仓库文件移动到该目录下,创建http.repo文件。

image.png

步骤5:清理yum缓存,重新建立元数据,并测试使用yum能否成功安装软件包。

image.png

步骤6:安装ftp,yum创建完成。

image.png

2. 以ftp方式搭建yum仓库

以ftp方式搭建yum仓库,在外网和内网的环境下都可以使用,但多用于内网。

服务端:192.168.1.20

客户端:192.168.1.30

操作过程

步骤1:服务端安装vsftpd服务程序。

image.png

步骤2:服务端切换到/var/ftp/ 目录,新建子目录centos7,并将光驱挂载到centos7目录下。

image.png

步骤3:服务端关闭防火墙和selinux,启动vsftpd服务。

image.png

步骤4:客户端安装ftp程序,测试ftp服务是否正常

image.png

image.png

步骤5:客户端切换到/etc/yum.repos.d/目录,新建文件夹,将默认的yum仓库文件移动到该目录下,创建ftp.repo文件。

image.png

image.png 步骤6:清理yum缓存,重新建立元数据,并测试使用yum能否成功安装软件包。

image.png

步骤7:安装httpd,yum创建完成。

image.png

3.搭建阿里云仓库

国外云仓库比较慢,可以使用阿里云仓库代替。

操作过程

步骤1:切换到 yum.repo.d 目录:cd /etc/yum.repos.d/

image.png

步骤2:创建bak目录:mkdir bak

image.png

步骤3:将自带的仓库移走:mv *.repo bak

image.png

步骤4:查看bak目录:ls

image.png

步骤5:创建阿里云仓库文件:vim aliyun.repo

【aliyun】
name=aliyun
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
		https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
		https://mirrors.huaweicloud.com/epel/$releasever/x86_64
		https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
gpgcheck=0

[epel]                                         //epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0

[update]                                       //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0

image.png