生产环境通常没有公网,只能将软件rpm包下载下来进行安装,而linux环境下软件可能需要多个依赖包,因为操作系统可能有各种定制化、安全加固情况,不同操作系统镜像已有依赖包及版本也不尽相同。本文以ansible为例,描述如何下载所需依赖包。
环境:与私网环主机同版本操作系统的有公网环境的主机
1.安装yum-utils
yum install yum-utils -y
安装完成之后即可使用yumdownloader
2.安装epel
epel所包含软件数量和版本都比默认源优质很多
yum install -y epel-release
如果安装后使用yun会出现找不到mirro报错,
vim /etc/yum.repos.d/epel.repo
注释掉mirrorlist,取消注释baseurl
yum clean all
yum makecache
3.下载ansible
yumdownloader ansible --resolve --destdir=/home/user/ansible/
仅下载不安装,至此在/home/user/ansible/目录中,所需rpm包已下载完成,本机即使断网,ansible也可以正确无误的完成安装。如果操作系统版本完全一致,在私网主机上也可以顺利安装了。
但事实上,通常两台主机的操作系统不可能完全一致,因此下载好的依赖包到了私网主机上可能再次出现缺依赖包情况,此时需要使用yum deplist ansible命令查看所需依赖包,再在公网主机上使用yumdownloader命令或者在其他仓库中把依赖包下载下来。