乐趣区

关于centos:无外网情况下的centos软件安装

背景

有些时候在一些内网环境部署机器的时候,要用一个跳板机,再通过跳板机 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

参考浏览

中科大镜像源

退出移动版