固定链接 基于滴滴云的 yum 源服务器的搭建(一)

基于滴滴云的 yum 源服务器的搭建(一)

基于滴滴云的 yum 源服务器的搭建(一)

CentOS 下 yum 源的搭建

在安装完 Linux 操作系统后,往往会需要安装很多软件,同时在编译代码时也需要安装很多依赖的 yum软件包,但是我们的服务器又不能连接外网的话,这个就很麻烦。

如果公司局域网内有自己的 yum 源,就可以很方便的使用 yum 来安装软件了。如果可以的话,也可以对外提供 yum 源,定期更新软件包,为 IT 工作人员提供公网公开的 yum 源。

以下是国内几个常用的 yum 源:

今天就简单介绍一下 yum 源的搭建方法。

分几种不同的场景来搭建。

第一种场景

服务器本地就有 ISO 镜像,ISO 镜像里带着软件开发所需要的所有 yum 包,也就是本地文件的 yum 源。

1. 准备 ISO 镜像

这一步可以从 CentOS 官网下载或者从光盘获取。

官网下载地址:https://www.centos.org/download/

2. 挂载镜像

如果是从官网下载的 ISO 文件,那首先需要将 ISO 挂在到系统指定路径下:

主要是这条命令:

ISO 文件具体路径根据你实际存放的路径为准。

挂载后如下:

假如我们使用的设备是光盘 sr0,则使用如下方式挂载:

3. 配置 yum 源

备份系统原有的 yum 源

然后清除本地所有缓存

编写自己的 repo 文件

我们已经把所有原来的 repo 文件做好了备份,最后把自己的 repo 放进来,然后重建缓存如下:

重建缓存,将它保存为 centos7.repo,放在 /etc/yum.repos.d/ 目录下。GPGkey 可以不指定,只是你开启 GPGcheck 后需要指定路径。

重建 yum 缓存(元数据)

4. 测试一下

5. 再比如

第二种场景

我们服务器本地没有 ISO 镜像,但是有所需要的 RPM 包文件列表,也可以利用这些 RPM 搭建属于自己的本地 yum 源。

1. 准备 RPM 包

假如我们的 RPM 包已经准备好放在如下目录下:/home/Packages/

ls 查看如下:

2. 准备 yum 源配置文件

将它保存为 mytest.repo,放在 /etc/yum.repos.d/ 目录下:

3. 安装 createrepo 工具

4. 创建本地 yum 源数据库文件

5. 清除原有 yum 配置

6. 重建缓存(元数据)

7. 测试一下

第三种场景

对外公开的 yum 源,要求:

  1. 这个 yum 源服务器要能够定期自动更新 yum 源
  2. 使用 CentOS 官方标准源保持更新
  3. Linux ( mini ) 客户端可以在使用的时候直接使用源,比如直接命令:yum –y install gdb*

1. 开始配置 yum 源服务器

2. 安装 Nginx 服务

我们使用 Nginx 配置 yum 源 Web 服务器:

3. 测试 Nginx 服务

方法1:

http://116.85.5.228 ,如图:

方法2:

4. 开始配置 CentOS 镜像

在 Nginx HTML 下面建立以下目录:

5. 修改 Nginx HTML

增加如下内容:

6. 重启 Nginx服务

使用滴滴云分配的 EIP 访问如下:

7. 配置 repo

8. 同步镜像

同步完后如下:

如果出现同步后没有发现对应的文件和目录,请检查 repo 文件是否有错误。

这样 yum 源的 Server 端就建立好了。然后进行建仓,即 yum 源仓库,供 Client 端检索使用。

9. 配置 yum 源缓存元数据

如图:

接下来 Client 端配置后就可以直接使用这些 didiyun yum 源安装软件了。

10. 准备测试客户端

再启动一台滴滴云主机,开始做如下配置:

客户端的 yum 配置:

  1. 安装优先级控制软件:

    使用 yum 来安装 yum install yum-plugin-priorities -y

    这个是优先级控制工具,可以控制 Client 端进行 yum 源的先后使用查找。

  2. 备份客户端系统原有的 yum 源,此处要注意,域名需要自己购买,这里只是举例。

  1. 清除本地缓存和重新建立缓存

现在新的滴滴云 yum 源已经搭建好了,而且也设置了优先级,可以测试安装软件了。

我们来测试一下安装 xz 相关。

11. 配置滴滴云 yum 源自动更新机制

这里我们先简单写个脚本定期更新 CentOS 7.4 的镜像:

这样每周 6 六点半自动更新 CentOS 7.4 yum 源。

后续会根据具体的版本来设置更新,做到每个版本独立更新。

本文作者:杜勃勃

您的留言将激励我们越做越好