yum软件包乾坤大挪移
背景
由于很多的生产环境是无法连接外网的,因此用yum或者dnf命令来安装软件包常常是一个比较麻烦的事情,原因是很多软件的依赖很复杂,如果要一个个下载、拷贝、再安装,这往往是一个非常繁琐冗杂的过程,那么有没有一个方法可以一次性把这些软件包及其依赖下载下来呢?答案是肯定的。今天就跟我来学习以下吧。
本文以ansible的安装为例,其他软件包也是一样的道理,一样的操作,大家可以举一反三,灵活应用。
由于公司的生产环境是无法连接外网的,所以我们需要在有网的环境上将ansible所有的依赖都下载下来,在网上找了很多方法,基本都是很复杂的,而且还会受版本和系统的限制。本教程真正意义上的离线安装,且操作傻瓜式,几行代码就完成安装。
在线安装
在离线安装前先简单看看在线安装。
yum -y install epel-release yum install ansible
在线安装比较简单,这里不做过多介绍。
离线安装
这里进入正题。由于生产环境是Centos 7.9,所以这里需要提前准备好一台相同系统的有网环境,理论适合任何系统。
安装的原理是:利用yum的yum-downloadonly插件将所有的依赖下载下来,这样就可以打包到别的环境进行完全安装
1、下载软件包及依赖
注意:如果你之后想继续下其他的依赖,这里下完了不要安装,因为某些依赖是共用的,安装后就无法下载了
# --downloaddir为将依赖下载到指定目录
yum install -y ansible --downloadonly --downloaddir=/root/ansible
下载下来的所有依赖是这样的
2、打包并上传到目标环境
tar zcvf ansible.tar.gz ~/ansible
3.拷贝软件包到内网主机并解压安装包
tar zxvf ansible.tar.gz && cd ansible
4.安装ansible
yum localinstall *.rpm
5.检测是否安装成功
ansible --version
总结
怎么样?是不是非常简单,以后遇到类似需要在内网安装软件包的情况,就可以用这个方法来个“乾坤大挪移”,把软件包及依赖转移到内网主机上,再进行安装即可。