【配置本地仓库yum源的两种方式】

一、使用下载的rpm包搭建本地仓库yum源

​  使用自己下载的rpm包搭建本地仓库,需要用createrepo去创建仓库元数据。

1、下载需要的软件包

在一台可以联网的服务器上下载。或者通过其他方式下载自己需要的软件包。

shell 复制代码
# 下载所需工具依赖包到 /mypath
[root@test ~]# yum install --downloadonly --downloaddir=/mypath createrepo httpd [...]
  • createrepo:是一个用于创建Yum仓库的命令行工具。它用于生成Yum仓库所需的目录结构和元数据,以便Yum客户端可以通过该仓库获取和安装软件包。
  • httpd:是一个开源的Web服务器软件。

2、制作yum源(本地)

适用场景:使用yum源的是当前服务器。

shell 复制代码
# 创建一个新的目录,用于存储yum源的软件包
# 将需要的rpm软件包复制或下载到该目录中
[root@test ~]# mkdir /opt/repo
# 生成repodata目录-元数据
[root@test ~]# createrepo /opt/repo/
# 命令执行后,会在该目录下创建一个repodata目录 
[root@test ~]# ls /opt/repo/
repodata
# 更新createrepo
[root@test ~]# createrepo --update /opt/repo
# 此时就制作好了本地yum源

关于repodata

​ 跳转:《全面解析repodata》

​  repodata包含了该仓库中每个RPM软件包的元数据。repodata包含的信息有很多,包括但不限于软件包的名称、版本、发行版、依赖关系、提供的功能等等。

shell 复制代码
[root@test ~]# ll /opt/repo/repodata
*-primary.xml.gz	# 软件包的基本信息
*-filelists.xml.gz	# 软件包中包含文件的信息
*-other.xml.gz	# 软件包其它相关信息
repomd.xml	# 提供.xml.gz下载和校验信息

3、搭建http服务(局域网)

适用场景:使用yum源的是同局域网的其他服务器。

shell 复制代码
# 搭建http服务
[root@test ~]# cd /opt/repo
[root@test repo]# yum install -y httpd
[root@test repo]# systemctl start httpd && systemctl enable httpd
# 可以做软链接也可以直接把目录mv到/var/www/html/
[root@test repo]# ln -s /opt/repo /var/www/html/

http服务的路由访问示例:

root@test www# tree /var/www/

/var/www/

├── cgi-bin

└── html

  ├── testA # http服务访问:http://192.168.38.10/testA/

  └── repo # http服务访问:http://192.168.38.10/repo/

3.1、访问yum服务器

http://192.168.38.10/repo/

4、yum配置文件

shell 复制代码
# 新建一个新的yum源配置文件
[root@test ~]# vi /etc/yum.repos.d/local.repo

# 添加以下内容
[local]
name=Local Repository
baseurl=file:///opt/repo	# 本地yum源,配置文件path
#baseurl=http://192.168.38.10/repo/	# 搭建http服务后,可配置服务url
enabled=1
gpgcheck=0	# 如果想要启用GPG校验,将gpgcheck的值设置为1 并提供相应的GPG密钥

5、验证

shell 复制代码
# 清除现有的yum缓存
[root@test ~]# yum clean all
# 查看源列表
[root@test ~]# yum repolist

二、使用镜像文件搭建本地仓库yum源

​  如果使用系统镜像文件搭建yum源,无需 createrepo去创建仓库元数据,因为在打包成iso文件前,就已经建好了。直接创建仓库文件,将路径指向关盘挂载的目录就可以了。

镜像文件目录:

  • Packages:存放rpm软件包。
  • repodata:仓库档案(元数据)。
  • isolinux:光盘引导数据。
  • RPM-GPG-KEY-xxx:签名校验密钥。

1、创建挂载目录

shell 复制代码
[root@test ~] mkdir /mnt/cdrom

2、上传镜像文件

将镜像文件上传到本地目录下,假设上传目录为:/root/CentOS-7-xxx.iso

3、挂载iso文件

shell 复制代码
# 将本地iso文件挂载到/mnt/cdrom目录
[root@test ~] mount -o loop -t iso9660  /root/CentOS-7-xxx.iso /mnt/cdrom

也可以搭建http服务,对外提供服务。

4、配置yum配置文件

shell 复制代码
[root@test ~] vim /etc/yum.repos.d/local.repo
[base]
name=RedHat
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
# gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-xxx

# baseurl:挂载的目录,在这里是/mnt/cdrom
# enabled:一定要为1  
# gpgckeck:如果想要启用GPG校验,将gpgcheck的值设置为1 并提供相应的GPG密钥
# gpgkey:cd /mnt/cdrom/可以看到这个key,这里仅仅是个例子

5、验证

shell 复制代码
# 清除现有的yum缓存
[root@test ~]# yum clean all
# 查看源列表
[root@test ~]# yum repolist
相关推荐
lwx9148529 小时前
Deepin操作系统
linux·服务器·网络
Lsetea10 小时前
OpenSSL指定-cipher仍协商TLS1.3:证书排查中的套件与协议边界
运维·https·ssl证书·openssl·tls
先知后行。10 小时前
进程间通信(IPC)
linux·运维·服务器
weixin_5716674110 小时前
Windows 通过 SSH 反向隧道向 Ubuntu 转发代理
linux·运维·windows·代理
乔旭伟11 小时前
CentOS 停更迁移实战:vault 源配置、目标选型与迁移工程清单
linux·运维·centos
遇印记11 小时前
应用层,网络管理
运维·网络·windows·学习·安全
鬼手点金11 小时前
ReAct 循环
linux·服务器·前端·javascript·react.js·前端框架
皓月盈江11 小时前
Linux Debian下STM32CubeProgrammer串口连接失败解决方案
linux·stm32·debian·串口下载·stm32f103c8t6·usb转ttl·stm32cubepro
EterNity_TiMe_11 小时前
Docker服务越装越多记不住端口?我用Fenrus把NAS里的常用入口整理成一个导航页
运维·人工智能·docker·ai·容器·cpolar
远方160912 小时前
108-ORA-00600 [kdsgrp1-qetlbr] 内部错误排查与 RMAN 块级恢复
大数据·linux·数据库·oracle