背景

有些时候在一些内网环境部署机器的时候,要用一个跳板机,再通过跳板机ssh到指标机器,最初发现指标机器是不能拜访外网的,指标机器竟然还不能反向ping跳板机或者ssh到跳板机,通过iptables -nvLip route以及arp -n综合剖析之后,决定诚实点通过scp上传rpm形式解决

前提

首先须要参看指标机器的零碎信息,发现指标机器是centos 7版本

$ cat /etc/os-release

筹备一个全新的对应指标机器零碎版本的机器,这一点十分重要

我试过从跳板机以及从centos docker镜像容器获取对应软件的安装包,最初复制到指标机器的时候执行,发现常常缺失各种依赖

最靠谱的还是去找个centos7-minimal版本的镜像,装在虚拟机下面,进行如下操作

本地机器具体操作

获取一个零碎镜像,下载地址,抉择minimal版本,这样确保获取软件rpm包的时候获取更多的依赖数据

页面地址如下

http://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/

下载地址

http://iso.mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso

零碎装置实现之后执行如下命令,更换默认软件源

$ sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \         -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \         -i.bak \         /etc/yum.repos.d/CentOS-Base.repo

革除旧缓存,创立新缓存

$ yum clean all$ yum makecache

装置依赖包

$ yum install yum-utils -y

只获取包而不装置软件,--downloadonly示意只下载,--downloaddir指定软件包的地位,最初是软件名称,

$ yum install --downloadonly --downloaddir=/tmp/soft <package-name>

最初把整个文件夹用scp上传到跳板机,指标机器

指标机器操作

cd到蕴含有rpm包的文件夹地位执行如下命令,禁用软件源防止yum申请网络的时候报错

$ yum localinstall *.rpm --disablerepo=*

如果遇上依赖谬误,比方相似上面的输入

谬误:软件包:python-dmidecode-3.12.2-4.el7.x86_64 (/python-dmidecode-3.12.2-4.el7.x86_64)          须要:libxml2mod.so()(64bit)谬误:软件包:1:containers-common-0.1.40-11.el7_8.x86_64 (/containers-common-0.1.40-11.el7_8.x86_64)          须要:fuse-overlayfs

则须要从新回到本地centos新机器那边执行,具体软件包名称个别复制粘贴下来就行,有些非凡的找不到的自行搜寻,如此循环反复,最终能力装置好

$ yum install --downloadonly --downloaddir=/tmp/soft libxml2mod.so fuse-overlayfs

参考浏览

中科大镜像源