# 服务器yum源配置,本地,网络,本地共享yum源 ## 1. 引言 ## 1.1 什么是yum源 yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora ,centos,BClinux,RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理 , 能够从指定的服务器自动下载 RPM 包并且安装 , 可以自动处理依赖性关系 , 并且一次安装所有依赖的软件包 , 无须繁琐地一次次下载、安装。 我们可以使用 yum 工具通过 http,ftp 等协议去下载软件包 ,yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,让你很方便地使用命令直接管理软件包 ( 安装 , 卸载 , 更新 rpm 包 ), 甚至是 kernel 的更新。也可以将其理解为红旗环境下的 apt 管理工具。  ## 1.2 为什么要搭建内网yum源 在生产和工作中,出于安全性考虑,很多服务器并不能直接访问公网,当使用rpm安装包安装一些软件时,经常出现缺少依赖而不能安装的情况,此时我们需要配置本地yum源,配置本机yum源相对容易,一般只需要将系统镜像上传到主机后进行挂载,但是当内网内多台机器需要配置yum源时,再一台一台的配置单机yum源就十分麻烦和耽误时间,下面将分别介绍如何搭建网络yum源,本机单机yum源和内网共享yum源。 ## 1.3 准备工作 1. 在搭建yum源之前,我们需要至少准备一台服务器 配置网络yum源,只需要一台服务器 配置单机本地yum源,只需要一台服务器 配置本地共享yum源,至少需要两台可以ping通的服务器 2. 要升级的yum源iso镜像,当搭建本地yum源时,需要提前下载好要配置的yum镜像 3. 掌握`mount`命令 ## 2. yum源搭建 ## 2.1 网络yum源配置 我们通常使用 `yum install` 命令来在线安装 linux系统的软件, 这种方式可以自动处理依赖性关系,并且一次安装所有依赖的软件包。众所周知,从国外下载软件速度非常慢,很多情况下都无法下载。国内一些大公司做镜像同步国外的软件, 那么我们可能使用国内的下载地址,就能下载我们需要的软件。 ## 2.1.1 yum仓库配置 yum 的配置文件在 `/etc/yum.repos.d` 目录下, 其中有多个配置文件,每一个配置文件中都可以配置一个或多个`repository`, 但是最终会被合并为一个交给系统,所以多个文件只是为了方便管理。 当我们登录我们的纯净服务器后,尝试命令行 ```bash yum install -y tree ``` 发现无法安装  这时,我们需要配置网络yum源,国内有很多公司提供了yum源,我们只需要选择其中一个即可,这里以华为云yum源为例。 首先输入指令查看本地操作系统版本 ```bash cat /etc/redhat-release ``` 此处我的linux版本为centos7.6  打开华为云开源镜像站 [https://mirrors.huaweicloud.com/home](https://mirrors.huaweicloud.com/home),找到我们对应的操作系统版本:[https://repo.huaweicloud.com/repository/conf/](https://repo.huaweicloud.com/repository/conf/)   找到对应的`.repo`文件,下载后上传到服务器对应的`/etc/yum.repos.d/`目录,  或者执行下列命令 ```bash cd /etc/yum.repos.d/ vi local.repo ``` ```bash # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS7 baseurl=https://repo.huaweicloud.com/centos/$releasever/os/$basearch/ gpgcheck=0 #released updates [updates] name=CentOS-$releasever - Updates - repo.huaweicloud.com baseurl=https://repo.huaweicloud.com/centos/$releasever/updates/$basearch/ #mirrorlist=https://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates gpgcheck=1 gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - repo.huaweicloud.com baseurl=https://repo.huaweicloud.com/centos/$releasever/extras/$basearch/ #mirrorlist=https://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras gpgcheck=1 gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - repo.huaweicloud.com baseurl=https://repo.huaweicloud.com/centos/$releasever/centosplus/$basearch/ #mirrorlist=https://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus gpgcheck=1 enabled=0 gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7 ``` ### 2.1.2 更新yum源 > #输入完成后按`Esc` ,然后输入`:`,`wq`,回车 > > 执行下面指令 ```bash yum clean all yum makeacache yum repolist ```    再次尝试安装tree ```bash yum install -y tree ```  安装成功,网络yum源配置完成 ### 2.1.3centos yum源一键配置命令 ```bash mv /etc/yum.repos.d/* *.bak echo "[base] name=CentOS7 baseurl="https://repo.huaweicloud.com/centos/$releasever/os/$basearch/" enabled=1 gpgcheck=0" > local.repo yum clean all yum makecache ``` ### 2.1.4 其他yum源参考 附centos7yum源地址 ```bash # 清华大学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 # 腾讯 https://mirrors.tencent.com/repo/centos7_base.repo # 中科大yum源 https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3 # 北京理工大学 http://mirror.bit.edu.cn # 兰州大学 http://mirror.lzu.edu.cn # 厦门大学 http://mirrors.xmu.edu.cn # 东北大学 http://mirror.neu.edu.cn # 搜狐开源镜像站 http://mirrors.sohu.com/ # 中国科学技术大学 http://mirrors.ustc.edu.cn/ #电子科技大学 http://ubuntu.uestc.edu.cn/ ``` ## 2.2 本机单机yum源配置 当服务器无法访问公网或者所需要依赖无法在公网获取,我们可以通过 使用挂载本地iso镜像来获取我们需要的rpm包和依赖 ### 2.2.1 iso镜像获取并上传到服务器 由于的的服务器为centos7.6,所以我准备下获取centos7.6的镜像 一下为部分centos下载地址,随意选择一个就可以,切记选择来源安全可靠的镜像下载 ```bash 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://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/ ``` 将下载好后的镜像上传到`/mnt`中  在`/mnt`目录下创建文件夹 `centos72` 然后输入下面命令进行挂载 ```bash mount -o loop /mnt/CentOS* /mnt/centos72 ``` ### 2.2.2 repo文件配置 进入`etc/yum.repos.d/`目录, 将之前的repoll文件进行备份 ```bash mv * .. ``` 然后创建新的repo源,输入以下命令 ```bash mv -r * .. echo " [local] name=bendiyum baseurl=file:///mnt/centos72/ enabled=1 gpgcheck=0" > local.repo yum clean all yum makecache yum repolist ``` 配置完成  尝试使用yum ```bash yum install -y tree ```  本地yum源配置完成 ### 2.2.3 centos本地yum源一键配置 只需要输入下面命令即可 当服务器可以访问公网时 ```bash wget -p /mnt/ -o centos.iso http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso mkdir /mnt/centos mount -o loop /mnt/centos.iso /mnt/centos cd /mnt/yum.repos.d/ mv -r * .. echo " [local] name=bendiyum baseurl=file:///mnt/centos72/ enabled=1 gpgcheck=0" > local.repo yum clean all yum makecache yum repolist ``` 当服务器不可以访问公网时 需要将待挂载的镜像上传到服务器`/mnt`目录,然后执行下面命令 ```bash mv /mnt/* centos.iso mkdir /mnt/centos mount -o loop /mnt/centos.iso /mnt/centos cd /mnt/yum.repos.d/ mv -r * .. echo " [local] name=bendiyum baseurl=file:///mnt/centos72/ enabled=1 gpgcheck=0" > local.repo yum clean all yum makecache yum repolist ``` ### 2.3局域网共享yum源配置 在内网时,当多台机器需要配置本地同一yum源时,我们不需要在每台服务器上单独配置并挂载镜像,只需要在一台服务器上配置好yum源,并通过httpd服务让其他服务器能够正常访问即可 ### 2.3.1 httpd介绍 httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。  ### 2.3.2 安装并启动httpd 选择一台服务器作为配置节点,通过yum配置httpd,若无法使用yum,可以下载httpd的rpm包上传后安装。 ```bash yum install -y httpd ```  安装后启动httpd,关闭防火墙 ```bash systemctl start httpd systemctl stop firewalld systemctl status httpd ``` httpd启动成功 使用下面命令查看本机ip ```bash ifconfig ```  在浏览器输入本机ip,出现下面页面代表配置完成 httpd服务的目录文件在`/var/www/html`下面 进入`httpd`服务目录,创建文件夹`centosiso`  将要挂载的镜像放在`/mnt`下面, ```bash mv /mnt/* centosiso.iso mount /mnt/centosiso.iso /var/www/html/centosiso ```  在浏览器访问http://192.168.220.129/centosiso/  ### 2.3.3访问机配置yum 当在上一台机器已经配置好httpd后,我们选择同一网段内网其他机器配置yum源去访问此台服务器 ```bash cd /mnt/yum.repos.d/ mv -r * .. echo " [local] name=net_bendiyum baseurl=http://192.168.220.129/centosiso/ enabled=1 gpgcheck=0" > local.repo yum clean all yum makecache yum repolist ``` > 上述命令中的192.168.220.129此处ip地址为挂载镜像的服务器ip  配置完成,此时当内网内其他机器需要使用内网yum源可以使用此方法,当然,挂载其他共享yum也可以使用同样方法 ## 全文总结 本文主要介绍了服务器yum源的配置,包括yum源的概念、搭建内网yum源的原因、准备工作以及三种yum源的具体配置方法。 ### 重要亮点 - **yum源的定义与作用**:yum是一种在多种系统中的软件包管理器,能自动处理依赖关系,方便软件包管理。 - **搭建内网yum源的原因**:出于安全性考虑,服务器无法直连公网,配置本地yum源可解决rpm安装软件时依赖缺失问题。 - **准备工作**:搭建yum源至少需一台服务器,不同yum源配置的服务器数量和要求不同,还需准备yum源iso镜像和掌握mount命令。 - **网络yum源配置**:以华为云yum源为例,包括yum仓库配置、更新yum源、centos yum源一键配置命令和其他yum源参考。 - **本机单机yum源配置**:通过挂载本地iso镜像获取rpm包和依赖,包括镜像获取上传、repo文件配置及一键配置方法。 - **局域网共享yum源配置**:通过一台服务器配置yum源并借助httpd服务让多台内网机器共享,包括httpd介绍、安装启动和访问机配置。