centos部署本地yum源

做运维这七年,最怕的不是半夜报警,而是服务器在内网,想装个软件还得翻墙或者等外网通。那种看着进度条不动,心里发慌的感觉,谁懂?

以前我也觉得,搞个本地yum源挺麻烦,又要配web服务,又要改repo文件。直到上个月,公司给一批新服务器做初始化,全是内网隔离环境。要是还去一个个手动rpm安装,估计项目得延期半个月。

于是,我花了一晚上,把这套流程理顺了。今天不整那些虚的,直接上干货。

首先,你得有个CentOS的ISO镜像。别去官网下,太慢。找个靠谱的镜像站,或者从其他能联网的机器上拷一份。iso文件大概4G左右,别嫌大,这是基础。

接着,挂载镜像。这一步很简单,但很多人容易忽略权限问题。

mkdir /mnt/cdrom

mount -o loop /path/to/your/centos.iso /mnt/cdrom

注意看,mount命令后面那个路径,一定要写对。我之前就犯过蠢,路径多打了个空格,结果死活挂载不上,查了半天日志才发现是低级错误。这种细节,坑过不少新人。

挂载成功后,你会发现/mnt/cdrom目录下多了好多文件。别急着删,这些都是宝贝。

接下来是关键步骤,搭建本地源。很多人喜欢用nginx或者httpd,但对于大多数场景,其实用python自带的http服务器就足够了。简单,快,不用装额外依赖。

cd /mnt/cdrom

python -m SimpleHTTPServer 8080

对,就这一行命令。浏览器访问http://你的IP:8080,能看到一堆文件夹,说明成功了。

然后,去改yum的配置。备份原来的repo文件,这是好习惯。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

新建一个local.repo文件,内容如下:

[local]

name=Local Yum

baseurl=http://你的IP:8080/

enabled=1

gpgcheck=0

这里有个坑,gpgcheck一定要设为0。因为本地镜像的签名文件可能和系统自带的key对不上,除非你专门去处理gpg key,否则直接关掉最省事。

改完后,执行yum clean all,再yum makecache。这时候,你再yum install什么,速度都是满格的。

我有个同事,之前为了搞这个,折腾了一周,最后发现只是repo文件里的baseurl写错了,把http写成了https,导致一直连不上。这种小错误,真的让人头大。

其实,centos部署本地yum源的核心逻辑就两点:挂载镜像,提供访问。剩下的都是锦上添花。

当然,如果你服务器多,可以搞个统一的内网源服务器,让所有机器都指向它。这样每次更新镜像,只需要在源服务器上更新,所有机器自动同步。这招在大规模部署时,能省不少事。

还有,记得定期清理缓存。yum clean all,别让它占满磁盘空间。我见过有人的/var/cache/yum占了100G,结果系统崩了,数据全丢。教训啊。

最后,想说句心里话。技术这东西,别被那些高大上的术语吓住。yum源搭建,说白了就是让电脑知道软件去哪下。搞清楚了原理,你会发现,其实也没那么难。

希望这篇能帮到正在被内网环境折磨的你。如果还有问题,评论区见,咱们一起聊。

本文关键词:centos部署本地yum源