搭建属于自己的yum仓库

目录

前言

1. 环境准备

2. 制作仓库

2.1 流程

2.2 步骤

2.2.1.挂载本地镜像 Centos7.9 

2.2.2.安装服务

2.2.3.拷贝软件包到httpd根目录

2.2.4.制作仓库清单

2.2.5. 设置网络yum 源

2.2.6. 客户端验证

3. 总结


前言

        在工作中,往往我们的环境都是内网无法获取网络,而很多时候我们都需要用到yum源进行软件包的安装,通常最简便的方法就是在主机或者虚拟机上挂载(mount)一个镜像,进行安装。这种方法虽然便捷,但又诸多的不便;主机非常多的情况,磁盘不够的情况,都会给运维带来很大的负担;那么如果有一个仓库,只需要我们所有的需要连接的客户机连接该仓库,往里面用多少拿多少是不是就可以解决这个问题了呢?答案是可以的。下面就让我们一起来搭建自己的仓库吧!!!


提示:以下是本篇文章正文内容,下面案例可供参考

1. 环境准备

 操作系统:Centos7.9

 虚拟机:>=2台

 资源获取:

  • 国内镜像库下载:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云
  • 百度云盘:https://pan.baidu.com/s/1lrymBzWkSgwayRPXiHkMLw?pwd=asdf 提取码: asdf 

注:我这里使用的是 Centos7.9版本进行演示的,如果自己现场有环境,可以用自己的,原理都是一样的。如果没有问题那我们就 撸起袖子,开干吧!!!!


2. 制作仓库

2.1 流程

        1.挂载本地镜像---> 2. 安装httpd 服务--- > 3.拷贝软件包的http更目录--->4.createrepo 制作清单--->5.配置yum 源 ---> 6.客户端验证

2.2 步骤

2.2.1.挂载本地镜像 Centos7.9 

示例:

# 挂载镜像
[root@service ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
# 修改yum.repo 配置文件
[root@service ~]# vim /etc/yum.repos.d/development.repo
[development]
name=CentOS-$releasever
baseurl=file:///mnt
enabled=1
gpgcheck=0

# 清理yum 缓存
[root@service ~]# yum clean all ;yum repolist
Loaded plugins: fastestmirror
Cleaning repos: development
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror
Determining fastest mirrors
development                                                                                                                                                                                                   | 3.6 kB  00:00:00     
(1/2): development/group_gz                                                                                                                                                                                   | 153 kB  00:00:00     
(2/2): development/primary_db                                                                                                                                                                                 | 6.1 MB  00:00:00     
repo id                                                                                                          repo name                                                                                                     status
development                                                                                                      CentOS-7                                                                                                      10,072
repolist: 10,072

2.2.2.安装服务

# 安装本次需要的软件包
[root@service ~]# yum -y install httpd createrepo

2.2.3.拷贝软件包到httpd根目录

# 创建一个Centos7.9 的目录
[root@service html]# mkdir -p  /var/www/html/Centos7.9
# 将所有的镜像包拷贝到Centos7.9目录下,这里的需要花费一点时间哟,(这样做的目的是为了和镜像独立开来,如果不想拷贝直接可以将镜像盘挂载到 该目录下 mount /dev/cdrom /var/www/html/Centos7.9 也是可以的。
[root@service html]# cp /mnt/Packages/* /var/www/html/Centos7.9

2.2.4.制作仓库清单

# 切换到软件包所在的目录下
[root@service Centos7.9]# cd /var/www/html/Centos7.9
# 执行createrepo 命令开始制作清单,之后当前目录下会生成 repodata/repomd.xml 的文件
[root@service Centos7.9]# createrepo .
Spawning worker 0 with 31 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

仓库清单介绍:

ilelists.xml.gz:提供所有软件包的文件安装清单

primary.xml.gz:提供所有软件包的基本/主要信息

other.xml.gz:提供所有软件包的其他信息

repomd.xml:提供上述档案数据文件.xml.gz 的下载和校验信息

2.2.5. 设置网络yum 源

使用httpd 提供服务

[root@service Centos7.9]# cat vim /etc/yum.repos.d/development.repo
[development]                             
name=CentOS-$releasever   
baseurl=http://192.168.8.201/Centos7.9/
enabled=1   #启用                              
gpgcheck=0  #不校验                              

# 启动httpd 服务
[root@service Centos7.9]# systemctl restart httpd
# 清理yum缓存
[root@service Centos7.9]# yum clean all ;yum  repolist

2.2.6. 客户端验证

拷贝服务器的yum配置源文件到客户端,清理缓存即可使用

[root@service Centos7.9]# scp /etc/yum.repos.d/development.repo [email protected]:/etc/yum.repos.d/
# 清理缓存
[root@service clint]# yum clean all; yum repolist
# 测试安装软件
[root@service clint]# yum -y install httpd

3. 总结

总体来说是非常简单的,如果是小白直接按照操作步骤来即可,上面涉及到的ip 记得换一下哟,之后再以不用有到处找yum源的烦恼了。一库在手,天下我有!!!!

你可能感兴趣的:(linux,服务器,运维)