本文完整阅读约需 12 分钟,如时间较长请考虑收藏后慢慢阅读~

由于最近要做关于Kubernetes的一系列漏洞分析,需要安装大量旧版本的Kubernetes,通常安装旧版本软件的方法是直接找到旧版本源码,然后从源码进行构建,但该方案过于复杂,恰好测试环境是CentOS操作系统,那么能不能直接通过CentOS的包管理器yum来安装旧版本软件呢?方法其实很简单。

该方法为通用方法,但为方便,所安装的软件为kubeadm 1.9.5

0x01 检查软件是否存在

首先执行yum search kubeadm

已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.newmediaexpress.com
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: mirror.newmediaexpress.com
 * updates: mirror.newmediaexpress.com

kubeadm.x86_64 : Command-line utility for administering a Kubernetes cluster.

名称和简介匹配 only,使用“search all”试试。

说明该软件存在于当前所配置的yum源,但如果执行yum info kubeadm会发现其版本为最新版本,不是我们需要的老版本。这就需要进行接下来的工作。

0x02 检查软件源中所含软件的版本

接下来我们要查找软件源中该软件的版本列表。

执行yum list kubeadm --showduplicates,可以获得一个非常庞大的表:

已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.newmediaexpress.com
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: mirror.newmediaexpress.com
 * updates: mirror.newmediaexpress.com
可安装的软件包
kubeadm.x86_64                       1.6.0-0                          kubernetes
kubeadm.x86_64                       1.6.1-0                          kubernetes
kubeadm.x86_64                       1.6.2-0                          kubernetes
kubeadm.x86_64                       1.6.3-0                          kubernetes
kubeadm.x86_64                       1.6.4-0                          kubernetes
kubeadm.x86_64                       1.6.5-0                          kubernetes
kubeadm.x86_64                       1.6.6-0                          kubernetes
kubeadm.x86_64                       1.6.7-0                          kubernetes
kubeadm.x86_64                       1.6.8-0                          kubernetes
kubeadm.x86_64                       1.6.9-0                          kubernetes
kubeadm.x86_64                       1.6.10-0                         kubernetes
......
kubeadm.x86_64                       1.13.7-0                         kubernetes
kubeadm.x86_64                       1.13.8-0                         kubernetes
kubeadm.x86_64                       1.14.0-0                         kubernetes
kubeadm.x86_64                       1.14.1-0                         kubernetes
kubeadm.x86_64                       1.14.2-0                         kubernetes
kubeadm.x86_64                       1.14.3-0                         kubernetes
kubeadm.x86_64                       1.14.4-0                         kubernetes
kubeadm.x86_64                       1.15.0-0                         kubernetes

以上就是该软件包在软件源中的所有版本。我们这里需要安装1.9.5版本,只需要简单的执行一次yum list kubeadm --showduplicates | grep 1.9.5,发现软件源中存在该版本软件,即可开始安装过程。

0x03 进行对应版本软件的安装

yum软件包命名的结构通常为yum install <package name>-<version info>,以kubeadm为例,其结构应该是kubeadm-1.9.5-0.x86_64

知道具体的软件包命名结构之后,我们就可以开始根据命名进行软件包的安装了,其命令即为yum install kubeadm-1.9.5-0.x86_64