搭建本地yum仓库

搭建本地yum仓库

参考地址:https://blog.youkuaiyun.com/qq_43475285/article/details/129479198

1. 前言

1.1 什么是yum

yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora ,centos,BClinux,RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理 , 能够从指定的服务器自动下载 RPM 包并且安装 , 可以自动处理依赖性关系 , 并且一次安装所有依赖的软件包 , 无须繁琐地一次次下载、安装。

我们可以使用 yum 工具通过 http,ftp 等协议去下载软件包 ,yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,让你很方便地使用命令直接管理软件包 ( 安装 , 卸载 , 更新 rpm 包 ), 甚至是 kernel 的更新。

在这里插入图片描述

1.2 为什么需要内网yum仓库

在生产和工作中,出于安全性考虑,很多服务器并不能直接访问公网,当使用rpm安装包安装一些软件时,经常出现缺少依赖而不能安装的情况,此时我们需要配置本地yum源,配置本机yum源相对容易,一般只需要将系统镜像上传到主机后进行挂载,但是当内网内多台机器需要配置yum源时,再一台一台的配置单机yum源就十分麻烦和耽误时间,下面将分别介绍如何搭建网络yum源,本机单机yum源和内网共享yum源。

1.3 准备工作

方式说明当前测试环境信息地址信息
配置网络yum源只需要一台测试服务器CentOS Linux 7 (Core)192.168.244.111
配置单机本地yum源只需要一台测试服务器CentOS Linux 7 (Core)192.168.244.111
配置本地共享yum源至少需要两台可以联通的服务器CentOS Linux 7 (Core)*2192.168.244.111(yum仓库),192.168.244.110(远端机器)

2. yum源搭建

2.1 配置网络yum源

我们通常使用 yum install 命令来在线安装 linux 系统的软件, 这种方式可以自动处理依赖性关系,并且一次安装所有依赖的软件包。众所周知,从国外下载软件速度非常慢,很多情况下都无法下载。国内一些大公司做镜像同步国外的软件, 那么我们可能使用国内的下载地址,就能下载我们需要的软件。

个人常用阿里云的镜像地址,这里就以阿里云的配置方式举例说明

详情参考阿里云官方配置https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11PJpevX
其他镜像地址可参考https://blog.youkuaiyun.com/m0_67598987/article/details/134339726

1.1 备份原文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
1.2 下载阿里云文件

注意不同版本下载不同的地址文件

有些新的机器没有 wget 命令,但一般都会有 curl 命令。如果 curl 命令也没有可以直接使用 https://mirrors.aliyun.com/repo/Centos-7.repo 地址下载文件复制到 CentOS-Base.repo 文件中

# centos 6*
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# 或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo

# centos 7*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# centos 8*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# 或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

在这里插入图片描述

1.3 更新yum源
yum clean all
yum makecache
1.4 其他yum源参考

参考地址均为centos 7 相关配置

名称地址
清华大学yum源https://mirrors.tuna.tsinghua.edu.cn/help/centos/
网易yum源http://mirrors.163.com/.help/centos.html
阿里云yum源http://mirrors.aliyun.com/repo/Centos-7.repo
中科大yum源https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
北京理工大学http://mirror.bit.edu.cn
华为开源网站https://repo.huaweicloud.com/repository/conf/

2.2 本机单机yum源配置

当服务器无法访问公网或者所需要依赖无法在公网获取,我们可以通过使用挂载本地iso镜像来获取我们需要的rpm包和依赖

2.2.1 下载iso 镜像文件并上传至服务器自定义目录下

当前测试服务器为 centos7.9,所以准备下获取 centos7.9 的镜像一下为部分 centos 下载地址,随意选择一个就可以,切记选择来源安全可靠的镜像下载.

http://man.linuxde.net/download/CentOS
http://mirrors.btte.net/centos/7/isos/x86_64/
http://mirrors.cn99.com/centos/7/isos/x86_64/
http://mirrors.sohu.com/centos/7/isos/x86_64/
[http://mirrors.aliyun.com/centos/7/isos/x86_64/](http://mirrors.aliyun.com/centos/7/isos/x86_64/)
http://centos.ustc.edu.cn/centos/7/isos/x86_64/
http://mirrors.neusoft.edu.cn/centos/7/isos/x86_64/
http://mirror.lzu.edu.cn/centos/7/isos/x86_64/
http://mirrors.163.com/centos/7/isos/x86_64/
http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/
2.2.2 挂载文件
# 新建目录(自定义)
mkdir centos7

# 挂载文件
mount -o loop /Yum_repository/CentOS-7-x86_64-DVD-2009.iso /Yum_repository/centos7/

# 如果挂载错了,可以使用umount取消挂载
umount /Yum_repository/centos7/

在这里插入图片描述

在这里插入图片描述

2.2.3 配置yum文件
# 备份原文件
cd /etc/yum.repos.d
mkdir bak
mv ./* bak

# 创建新的repo源,输入以下命令
echo "
[local]
name=bendiyum
baseurl=file:///Yum_repository/centos7/
enabled=1
gpgcheck=0" > local.repo

yum clean all
yum makecache
yum repolist

在这里插入图片描述

2.2.4 测试
# 安装命令测试
[root@localhost ~]# tree
-bash: tree: command not found
[root@localhost ~]# yum install tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================================================
 Package                                      Arch                                           Version                                                Repository                                     Size
========================================================================================================================================================================================================
Installing:
 tree                                         x86_64                                         1.6.0-10.el7                                           local                                          46 k

Transaction Summary
========================================================================================================================================================================================================
Install  1 Package

Total download size: 46 k
Installed size: 87 k
Is this ok [y/d/N]:

在这里插入图片描述

2.3 内网共享yum源配置

在内网时,当多台机器需要配置本地同一 yum 源时,我们不需要在每台服务器上单独配置并挂载镜像,只需要在一台服务器上配置好 yum 源,并通过 httpd 服务让其他服务器能够正常访问即可

2.3.1 httpd
2.3.1.1 httpd 介绍

httpdApache 超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

在这里插入图片描述

2.3.1.2 安装httpd

yum 源仓库测试机器上安装 httpd

# 使用 yum 安装
yum install httpd -y

# 如果不能使用 yum 则下载rpm包进行安装
# 1. 使用yumdownloader工具。先安装yum-utils包,yum install yum-utils -y,然后使用yumdownloader httpd下载httpd安装包,依赖包会自动一并下载。
yum install yum-utils -y
yumdownloader httpd
# 2. 使用 scp 拷贝到本地
scp root@192.168.244.111:/etc/yum.repos.d/httpd-2.4.6-99.el7.centos.1.x86_64.rpm ./
# 3. 使用 rpm -ivh 安装
rpm -ivh httpd-2.4.6-99.el7.centos.1.x86_64.rpm

在这里插入图片描述

在这里插入图片描述

2.3.1.3 启动 httpd
# 启动 httpd 服务
systemctl start httpd
systemctl status httpd
systemctl enable httpd
# 关闭防火墙
systemctl stop firewalld

在这里插入图片描述

2.3.1.4 测试

网页访问IP地址

在这里插入图片描述

2.3.2 配置挂载
# 进入httpd的/var/www/html目录中,新建 centosiso 目录
[root@localhost html]# pwd
/var/www/html
[root@localhost html]# ll
total 2
drwxrwxr-x. 8 root root 2048 Nov 25  2018 centosiso
[root@localhost html]# mount -o loop /Yum_repository/CentOS-7-x86_64-DVD-1810.iso /var/www/html/centosiso/
mount: /Yum_repository/CentOS-7-x86_64-DVD-1810.iso is already mounted

在这里插入图片描述

2.3.3 浏览器测试

在这里插入图片描述

2.3.4 访问机器配置yum源

当仓库机器已经配置好 httpd 后,我们选择同一网段内网其他机器配置 yum 源去访问此台服务器

# 备份原有yum源配置信息
cd /etc/yum.repos.d
mkdir bak
mv ./* bak

# 新建配置文件
vim local.repo
[local]
name=net_bendiyum
baseurl=http://192.168.244.111/centosiso/ 
enabled=1
gpgcheck=0

yum clean all
yum makecache
yum repolist

# 安装命令测试

在这里插入图片描述

3. 配置开机自动挂载

使用 systemctl 设置开机自动运行程序

3.1 编写自动挂载脚本

vim mount_yum_iso.sh
#!/bin/bash
# 检查ISO文件是否存在
if [ -f /Yum_repository/CentOS-7-x86_64-DVD-1810.iso ]; then
    mount -o loop /Yum_repository/CentOS-7-x86_64-DVD-1810.iso /var/www/html/centosiso/
fi

3.2 配置 .service 文件

/etc/systemd/system/ 目录下创建一个以 .service结尾的文件,例如 mount_yum_iso.service

vi /etc/systemd/system/mount_yum.iso.service
[Unit]
Description=Test Script Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash /Yum_repository/mount_yum_iso.sh
Restart=always

[Install]
WantedBy=multi-user.target

# 其中 ExecStart 就是脚本的路径

3.3 重新加载并启动服务

systemctl daemon-reload
systemctl enable mount_yum_iso.service

 
 
 
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值