CentOS7制作本地局域网yum源

发布于:2022-11-29 ⋅ 阅读:(511) ⋅ 点赞:(0)

CentOS7制作本地局域网离线yum源
Yum(软件包管理器,全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
通常情况下,我们内部的服务器不允许直接连外网,要安装某些服务器比较麻烦,还有各种依赖包的问题。如果制作一个本地局域网离线yum源仓库,再安装软件包就会方便许多。制作本地yum的方式有多种,如http,ftp等,这里以ftp、nginx两种方式进行实验。

一、制作本地离线yum源服务端

1.上传iso镜像到系统

新建目录,并将iso镜像文件上传到目录

mkdir /hdapp

CentOS-7.9-x86_64-Everything-2207-02.iso

2.安装FTP服务

(假设有外网情况直接安装。如果没有外网的话,先省略这一步完成步骤3-4再回来步骤2安装也可以)

yum install -y vsftpd
systemctl enable vsftpd
systemctl start vsftpd

3.挂载镜像到FTP目录

FTP服务默认路径/var/ftp/,可以修改,我这里没有改直接演示

mkdir /var/ftp/myyum
mount -o loop /hdapp/CentOS-7.9-x86_64-Everything-2207-02.iso /var/ftp/myyum/

可以将该命令写入/etc/rc.d/rc.local文件,服务器重启能自动挂载镜像到目录
在这里插入图片描述

4.修改本地repo配置

yum服务端也可以是客户端,毕竟自身也需要安装或者更新软件包
baseurl修改为本地yum源绝对路径

cd /etc/yum.repos.d/
mkdir ./repobak
mv ./*.repo ./repobak/
cp ./repobak/CentOS-Media.repo .
vi CentOS-Media.repo

在这里插入图片描述
清理yum源,更新缓存,列出所有库

yum clean all
yum makecache
yum repolist

在这里插入图片描述

二、客户端配置

1.其他服务器客户端修改repo配置

baseurl路径修改为FTP路径

cd /etc/yum.repos.d/
mkdir ./repobak
mv ./*.repo ./repobak/
cp ./repobak/CentOS-Media.repo .
vi CentOS-Media.repo

在这里插入图片描述
清理yum源

yum clean all
yum makecache
yum repolist

在这里插入图片描述

2.测试安装软件包

安装成功
在这里插入图片描述

三、从公网获取最新软件包到本地yum仓库

如果yum源服务器可以连公网的话,可以设置定时从从公网获取最新软件包到本地yum仓库。

1.安装yum工具

yum install -y yum-utils createrepo plugin-priorities
yum-utils:reposync同步工具
createrepo:编辑yum库工具
#plugin-priorities:控制yum源更新优先级工具,这个工具可以用来控制进行yum源检索的先后顺序,建议可以用在client端

2.建立rpm库存放目录:

由于rpm较多,最好是下载在额外的数据盘,/hdapp已挂载容量较大的数据盘
mkdir -p /hdapp/aliyun/CentOS/7/64bit/

3.修改nginx配置文件

yum install -y nginx
vi /etc/nginx/nginx.conf
systemctl start nginx
systemctl enable nginx

修改nginx的默认html目录/usr/share/nginx/html/为/hdapp/aliyun/CentOS/7/64bit/,头部user nginx 改为user root,否则访问页面会提示403没有权限
在这里插入图片描述
在这里插入图片描述

4.建立阿里云yum库

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
在这里插入图片描述

5.刷新缓存

yum clean all
yum makecache
yum repolist

6.开始同步下载rpm包

reposync -np /hdapp/aliyun/CentOS/7/64bit
reposync:-n:只下载最新的包,-p:下载包的路径:默认为当前目录
在这里插入图片描述

7.建库

cd /hdapp/aliyun/CentOS/7/64bit
ll

可以看到从阿里云同步了5个文件夹下来,依次建库
tip:其c7-media与“一、服务端”中本地离线yum源内容几乎一致,因此客户端修改repo源只需要用这个同步的yum仓库即可

cd base
createrepo -p .
cd ../c7-media
createrepo -p .
cd ../epel
createrepo -p .
cd ../extras
createrepo -p .
cd ../updates
createrepo -p .

在这里插入图片描述

8.建立定时同步

新建同步脚本,同步完更新repo库

vi /hdapp/yum_update.sh
#!/bin/bash
echo 'Updating Aliyun yum Source'
DATETIME=``
exec > /var/log/aliyunyumrepo_$DATETIME.log
     reposync -np /hdapp/aliyun/CentOS/7/64bit
if [ $? -eq 0 ];then
      createrepo --update /hdapp/aliyun/CentOS/7/64bit/base
      createrepo --update /hdapp/aliyun/CentOS/7/64bit/c7-media
      createrepo --update /hdapp/aliyun/CentOS/7/64bit/epel
      createrepo --update /hdapp/aliyun/CentOS/7/64bit/extras
      createrepo --update /hdapp/aliyun/CentOS/7/64bit/updates
    echo "SUCESS: $DATETIME aliyum_yum update successful" >>/var/log/aliyunyumrepo_$DATETIME.log
  else
    echo "ERROR: $DATETIME aliyum_yum update failed" >> /var/log/aliyunyumrepo_$DATETIME.log
fi

每周日的3点同步:

crontab -e
0 3 * * 7 /bin/sh  /hdapp/yum_update.sh

9.客户端连接YUM仓库

上面看到从阿里云同步5个文件夹,可以在/etc/yum.repos.d/下新建5个同名文件,这里从原repo直接复制,修改里面内容就好了
在这里插入图片描述
在这里插入图片描述

yum clear all
yum makecache
yum repolist

在这里插入图片描述
测试安装软件包,完成
谢谢


网站公告

今日签到

点亮在社区的每一天
去签到