局域网Yum源搭建

目录

前言

1. 概述

2. 背景

3. 实施

3.1 上传ISO镜像

3.2 部署HTTP服务

3.2.1 安装

3.2.2 启动

3.2.3 验证

3.3 挂载ISO镜像

3.4 配置客户端Yum源

4. 扩展YUM源

4.1 WGET

4.2 Reporsync

5. 总结


💪每篇一句话:请把每一天都当做你生命中的最后一天。

👏博客主页: 懿 然

🙏文章为个人笔记,若其中如有内容不规范或讲解有误区的地方还请各位指正,谢谢大家!

🥺如果对您有帮助还请各位网友为博主点赞 👍+评论 📝+收藏⭐️+ 三连!!!

前言

 ❗️❗️❗️本篇目标
        本篇主要讲解局域网搭建Yum源的主要步骤;最终构建HTTP局域网Yum源,使局域网中的凡有需求的“客户端”均可使用远程源;尾篇讲如在使用过程中遇到缺少软件依赖包情况时该如何解决。
💪冲冲冲⛽️


1. 概述

        什么是YUM源?

        Yum源(Yellow dog Updater, Modified),是RedHat以及CentOS中的软件包管理器(国产系统也有应用到),主要用于自动安装、升级rpm软件包,能够自动查找并解决rpm包之间的依赖关系。yum源相当于一个目录项,当我们使用yum机制安装软件时,若需要安装依赖软件,yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。

  • YUM工作原理:
  1. 服务器端:运行YUM仓库服务器,存放所有的RPM包,并提供HTTP或FTP服务。
  2. 客户端:配置好YUM仓库的地址,通过解析仓库配置文件,并在本地建立元数据缓存,在需要安装或更新软件时,通过HTTP或FTP协议从仓库服务器下载相关的RPM包以及元数据。

2. 背景

     为什么需要自搭建局域网Yum源?

        搭建本地yum源可以提高软件包的下载速度稳定性,增强系统安全性,适应离线环境,满足定制需求,节省带宽成本等多方面的需求。

  1. 网络环境不稳定:在网络环境不稳定或者网络带宽较小的情况下,使用本地yum源可以提高软件包的下载速度和稳定性。
  2. 安全性考虑:使用本地yum源可以减少对外部源的依赖,降低因为外部源被攻击或篡改而导致系统安全性问题的风险。
  3. 离线环境:在没有网络连接的环境下,本地yum源可以提供离线安装软件包的功能
  4. 定制需求:搭建本地yum源可以根据自己的需求定制软件包,方便管理和部署。
  5.  节省带宽成本:如果有多台服务器需要安装相同的软件包,使用本地yum源可以节省带宽成本,避免多次下载相同的软件包。

3. 实施

        具体该如何实现既定目标?

  • 演示环境

Server端:采用国产欧拉系统

[root@localhost ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 (LTS-SP3)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP3)"
ANSI_COLOR="0;31"

Client端:

[root@node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

ISO镜像版本:openEuler-23.09-x86_64-dvd.iso

  •  注意事项

     1.关闭SElinux

setenforce 0

     2.关闭本地防火墙(或策略放通所需端口)

systemctl stop firewalld
  • 主要步骤:
  1. 准备ISO镜像(软件包)。

  2. 设置一个Web服务器,比如Apache或Nginx,来提供这些软件包的下载。

  3. 创建或编辑YUM仓库的元数据文件。

  4. 配置客户端以使用新的YUM源。


3.1 上传ISO镜像

        通过文件传输工具将ISO上传至目标Yum源服务器

[root@localhost ~]# find  / -name openEuler-23.09-x86_64-dvd.iso
/root/openEuler-23.09-x86_64-dvd.iso
  • 工具链接:

                FileZilla:https://filezilla-project.org/index.php

                WinSCP:https://winscp.net/eng/index.php

                FinalSHell:http://www.hostbuf.com/t/988.html

                MobaXterm:https://mobaxterm.mobatek.net/

                ……


3.2 部署HTTP服务

        Yum源仓库建立使用HTTP\FTP均可,小编本章利用HTTP方式搭建。

3.2.1 安装

[root@localhost ~]# yum -y install httpd
Last metadata expiration check: 4:12:26 ago on 2024年04月08日 星期一 11时22分20秒.
Dependencies resolved.
===========================================================================================                       

……
……

Installed:
  httpd-2.4.51-20.oe2203sp3.x86_64         httpd-filesystem-2.4.51-20.oe2203sp3.noarch      httpd-tools-2.4.51-20.oe2203sp3.x86_64     mailcap-2.1.53-3.oe2203sp3.noarch
  mod_http2-1.15.25-2.oe2203sp3.x86_64     openEuler-logos-httpd-1.0-8.oe2203sp3.noarch

Complete!

3.2.2 启动

[root@localhost ~]# systemctl restart httpd        #启动http服务
[root@localhost ~]# systemctl status httpd         #查看http服务   
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
     Active: active (running) since Mon 2024-04-08 15:38:58 CST; 9s ago
       Docs: man:httpd.service(8)
   Main PID: 181676 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 177 (limit: 98886)
     Memory: 27.4M
     CGroup: /system.slice/httpd.service
             ├─ 181676 /usr/sbin/httpd -DFOREGROUND
             ├─ 181721 /usr/sbin/httpd -DFOREGROUND
             ├─ 181722 /usr/sbin/httpd -DFOREGROUND
             ├─ 181723 /usr/sbin/httpd -DFOREGROUND
             └─ 181724 /usr/sbin/httpd -DFOREGROUND

4月 08 15:38:58 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
4月 08 15:38:58 localhost.localdomain httpd[181676]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Se>
4月 08 15:38:58 localhost.localdomain systemd[1]: Started The Apache HTTP Server.

3.2.3 验证

        浏览器直接访问:http:x.x.x.x


3.3 挂载ISO镜像

  • 挂载镜像

        格式:mount  -o  loop  iso(文件的绝对路径)  服务器目标路径

        注:http默认路径/var/www/html

[root@localhost ~]mkdir -p /var/www/html/iso/OpenEuler    #创建挂载目录
[root@localhost ~]# mount -o loop /root/openEuler-23.09-x86_64-dvd.iso /var/www/html/iso/OpenEuler/                                                
                                                          #镜像挂载
mount: /var/www/html/iso/OpenEuler: WARNING: source write-protected, mounted read-only.
  • 访问WEB验证


3.4 配置客户端Yum源

  • 备份Yum源文件
[root@node01 ~]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# mkdir repo.bak            #创建备份文件
[root@node01 yum.repos.d]# mv CentOS-* repo.bak/     #拷贝至备份文件
  • 新建Yum源文件
[root@node01 yum.repos.d]# vi Openeuler-base.repo
[openeuler]                                     #yum的ID 本地唯一,用于区分不同yum源
name=openeuler                                  #描述信息
baseurl=http://192.168.1.36/iso/OpenEuler/      #前面的file://是协议,后面为资源目录
enabled=1                                       #1启用当前yum源,0禁用
gpgcheck=0                                      #1使用公钥验证rpm包的正确性,0不验证
  • 验证Yum源配置
[root@node01 ~]# yum clean all        #清除旧yum缓存
已加载插件:fastestmirror
正在清理软件源: docker-ce-stable elrepo kubernetes openeuler
Cleaning up list of fastest mirrors
Other repos take up 222 M of disk space (use --verbose for details)
[root@node01 ~]# yum makecache        #创建新yum缓存
已加载插件:fastestmirror            
Determining fastest mirrors
 * elrepo: mirrors.tuna.tsinghua.edu.cn
openeuler                         | 3.8 kB  00:00:00
……

元数据缓存已建立
[root@node01 ~]# yum repolist all    #查看yum仓库
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo: mirrors.tuna.tsinghua.edu.cn
源标识                           源名称                   状态 
openeuler                       openeuler               启用: 2,626

 注:如所配置yum状态显示禁用可通过以下命令启用

yum-config-manager --enable  <repo>      #repo:YUM源名称

4. 扩展YUM源

        搭建局域网yum源后,在使用过程中都会发现缺少很多软件依赖包;要扩展本地yum源软件包,首先需要在服务器上安装和配置yum工具。

扩展Yum源常见方式:rsync、wget、reposync

  • rsync:需要外网 yum 源支持 rsync 协议
  • wget:可以直接获取
  • reposync:可以同步几乎所有的 yum 源

4.1 WGET

        将需要的软件包下载到本地,并将其放入一个目录中,使用createrepo工具来生成repodata数据,以创建yum源索引文件。

  • 服务端配置
[root@localhost ~]# yum install createrepo -y    #安装工具
[root@localhost ~]# cd /var/www/html/            #移动到WEB资源发布目录
[root@localhost html]# mkdir centos              #创建资源目录
[root@localhost html]# createrepo centos/        #生成yum索引
[root@localhost html]# cp /root/yum-utils-4.0.21-25.el8.noarch.rpm /var/www/html/centos/    #下载的资源包移动至该目录
  •  客户端配置

        修改本地yum配置文件,指定远程yum源

[root@node01 ~]# cd /etc/yum.repos.d/        
[root@node01 yum.repos.d]# vi centos.repo        #创建repo文件
[centos]
name=centos
baseurl=http://x.x.x.x/centos
enabled=1
gpgcheck=0
[root@node01 yum.repos.d]# yum clean all        #清除旧缓存
[root@node01 yum.repos.d]# yum makecache        #生成新缓存
  • 访问WEB验证

4.2 Reporsync

  •  配置yum源
[root@localhost ~]# mkdir /etc/yum.repos.d/backup
[root@localhost ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
#备份yum文件
———————————————————————————————————————————————————————————————————————————————————————
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#下载阿里云yum源,并更改文件名称
————————————————————————————————————————————————————————————————————————————————————————
[root@localhost ~]# yum clean            #清除缓存
[root@localhost ~]# yum makecache        #生成缓存
[root@localhost ~]# yum repolist         #列出yum仓库列表
已加载插件:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
源标识                     源名称                                     状态                                               
base/7/x86_64              CentOS-7 - Base - mirrors.aliyun.com      10,072                                                     
extras/7/x86_64            CentOS-7 - Extras - mirrors.aliyun.com    526                                                      
updates/7/x86_64           CentOS-7 - Updates - mirrors.aliyun.com   5,802                                                      
repolist: 16,400
  • 安装相关软件
[root@localhost ~]# yum install -y wget httpd yum-utils createrepo
——————————————————————————————————————————————————————————————————
wget            #下载工具
httpd           #提供WEB服务
yum-utils       #yum工具集
createrepo      #rpm文件进行索引建立的工具
  •  同步yum源

        创建本地yum源存放目录,同步阿里yum源软件包

[root@localhost ~]# mkdir /var/www/html/centos
[root@yumserver ~]# reposync -n --repoid=extras --repoid=updates --repoid=base --repoid=epel -p /mirror
#参数-n指下载最新软件包,-p指定目录,指定本地的源--repoid(如果不指定就同步本地服务器所有的源),下载过程比较久(10个小时左右)
  • 创建仓库索引
[root@localhost centos]# createrepo -po /var/www/html/centos/base/ /var/www/html/centos/base/
[root@localhost centos]# createrepo -po /var/www/html/centos/extras/ /var/www/html/centos/extras/
[root@localhost centos]# createrepo -po /var/www/html/centos/updates/ /var/www/html/centos/updates/
  • 更新数据源
[root@localhost base]# createrepo --update /var/www/html/centos/base/
[root@localhost base]# createrepo --update /var/www/html/centos/extras/
[root@localhost base]# createrepo --update /var/www/html/centos/updates/
  •  启动WEB服务

        详见3.2章节

  • 访问WEB验证

        WEB访问yum资源

  • 客户端配置

         配置yum源仓库

[root@node01 yum.repos.d]# vi CentOS7.repo
[base]
name=CentOS
baseurl=http://192.168.1.35/centos/base/
gpgcheck=0
enabled=1

[updates]
name=CentOS
baseurl=http://192.168.1.35/centos/updates/
gpgcheck=0
enabled=1

[extras]
name=CentOS
baseurl=http://192.168.1.35/centos/extras/
gpgcheck=0
enabled=1
[root@node01 yum.repos.d]# yum clean            #清理缓存
[root@node01 yum.repos.d]# yum makecache        #生成缓存

         验证测试

[root@node01 yum.repos.d]# yum -y install Cython
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 Cython.x86_64.0.0.19-5.el7 将被 安装
--> 解决依赖关系完成
……

已安装:
  Cython.x86_64 0:0.19-5.el7

完毕!

5. 总结

        以上是如何在局域网自搭建yum源以及如何应对有扩展yum源需求的实践分享;后续会持续更新关于Linux运维篇的文章,欢迎大家一起学习交流;点个关注,可第一时间获取最新内容,感谢大家的支持❗❗❗

  • 30
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 配置CentOS 7的yum源可以选择本地yum源或者阿里云的网络yum源。如果选择阿里云的yum源,可以按照以下步骤进行配置。 首先,下载阿里云的yum源文件。使用以下命令下载并保存到/etc/yum.repos.d/CentOS-Base.repo文件中: \[root@localhost yum.repos.d\]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 然后,使用以下命令查看CentOS的版本: cat /etc/redhat-release 接下来,使用以下命令显示所有仓库: \[root@localhost yum.repos.d\]# yum repolist all 如果需要清空原有的yum源文件,可以使用以下命令: rm -f /etc/yum.repos.d/* 或 ls /etc/yum.repos.d/ 然后,创建一个新的目录用于备份原有的yum源文件: mkdir /root/123 将原有的yum源文件移动到新创建的目录中: mv -f /etc/yum.repos.d/* /root/123 这样就完成了CentOS 7配置阿里云yum源的过程。 #### 引用[.reference_title] - *1* *2* [虚拟机给Centos7配置yum源(本地yum和网络yum)](https://blog.csdn.net/LShuo666/article/details/129021403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [centos7如何搭建本地yum源局域网yum源以及网络yum源](https://blog.csdn.net/qq_45861317/article/details/120054815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值