因为工作的原因,需要在隔离的内网环境中搭建 YUM 私有源。搭建完成后,发觉绕了一些弯路,而且网上类似文章虽多,但基本很少有对镜像和源进行校验,所以还是同样做个备忘(主要是十一月都要过半了,文章还没一篇)。
搭建 YUM 私有源有两个方法,一个是借用镜像,另一个是同步网上公开的 YUM 源,本篇采用的是前一种方法,至于另一种主要是还没解决与内网服务器同步的问题(非一次性),等有合适的解决方法之后再另外写一篇(挖坑)。
挂载镜像
因为公司用的都是阿里云服务器,所以镜像也是从阿里巴巴开源镜像站下载,版本是 CentOS-7-x86_64-Everything-1908(当然从其他源也是一样的,这里只是为了日后方便说明)。
最开始我是先在能连外网的 CentOS 7 服务器中下载 httpd
包和其依赖,但事后发觉其实没这个必要,等 YUM 私有源搭建好之后再安装也不迟,顺便还可以在本机做个测试。不过步骤还是放在附录中,以防以后需要用到。
先把下载好的 iso 镜像做个校验(非必要,但建议),sha256sum 可在当前版本下的 sha256sum.txt 查看,这里是 sha256sum.txt,因为下载的是 Everything,所以对应的是 bd5e6ca18386e8a8e0b5a9e906297b5610095e375e4d02342f07f32022b13acf
。
查看镜像的 sha256sum:
校验完成后,便可以上传文件到内网服务器:
修改源指向
字段说明:
- name:源名称,$releasever 获取系统大版本号;
- baseurl:源目录,因为没安装 httpd,所以这里指向的是本地;
- enabled:是否启用源,1 表示启用,0 表示禁用;
- gpgcheck:是否对源进行校验,这里也可以填写 0 表示禁用;
- gpgkey:指向本地的 RPM-GPG-KEY 路径,不用可以删除;
接下来就可以在本机使用 YUM 源了,不过先清除下本机的 YUM 缓存:
启动 httpd 服务
现在可以通过 http://10.1.1.42/centos/7
打开页面,将会成功显示镜像内容,之后在其他局域网的服务器中使用,只要把 centos.repo
中的 baseurl 改为 http://10.1.1.42/centos/7
即可。
最后
快要写完时,发现 CentOS 7 和 CentOS 6 是需要对应的镜像,两者并不能通用,而且 CentOS 6 并没有 Everything 的镜像可下载,所以在又把上面的链接和挂载目录重新编辑过。
另外实际使用中,可以写个 sh 脚本直接用 wget 从服务器下载自动替换 repo。
对了,补充一点,YUM 是以大写形式书写的,可以参考维基:yum (software) - Wikipedia
再补充一点,当初想建立 YUM 私有源时,以为和搭建镜像站是同一码事(虽然它们的确是放在一起的),后面才意识到其实两者是可以分开的。
信息
附录
关于下载 httpd 和依赖包,并上传到内网服务器中。
版本
- 系统版本
- CentOS 6.8
- CentOS 7.2