背景
有些时候在一些内网环境部署机器的时候,要用一个跳板机,再通过跳板机 ssh
到指标机器,最初发现指标机器是不能拜访外网的,指标机器竟然还不能反向 ping
跳板机或者 ssh
到跳板机,通过 iptables -nvL
和ip 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
参考浏览
中科大镜像源