无外网情况下的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

参考阅读

中科大镜像源

粗犷型程序员

10 声望
0 粉丝
0 条评论
推荐阅读
Linux 硬件性能评估
下面的命令操作以及示例主要是针对Ubuntu系统CPU常见概念与查询时钟速度CPU时钟速度越高,CPU 运行速度越快时钟速度则测量 CPU 每秒执行的周期数,以 GHz(千兆赫)为单位周期是由内部振荡器同步的脉冲,举例,时...

龚正阳阅读 360

CentOS从零开始部署Nodejs项目
原文地址:[链接]安装nodejs、npm/cnpm {代码...} 安装mysql卸载 {代码...} 安装 {代码...} 启动 {代码...} 登录 {代码...} 修改root密码 {代码...} 允许远程访问,与本地密码区分,是两个密码 {代码...} 安装git...

jigsaw3阅读 5k评论 3

手把手教你一套完善且高效的k8s离线部署方案
作者:郝建伟背景面对更多项目现场交付,偶而会遇到客户环境不具备公网条件,完全内网部署,这就需要有一套完善且高效的离线部署方案。系统资源编号主机名称IP资源类型CPU内存磁盘01k8s-master110.132.10.91CentO...

京东云开发者2阅读 360

封面图
CentOS分区
分区格式化查看分区信息fdisk -l {代码...} 查看已分区信息 {代码...} 格式化分区 {代码...} 如果格式化成ext4模式, 执行以下命令 {代码...} 挂载分区挂载分区 {代码...} 开机自动挂载查询分区UUIDlsblk -f {代...

YYGP1阅读 842

Mysql 8.0.31 在Linux下任意非标准路径的安装指南
本安装方法叙述的场景为:从mysql官网 https://dev.mysql.com/downloads/mysql 下载社区community 版本适用一般linux系统(下载时应选择系统为:Linux-Generic)(实际本教程系统为centos6或 centos7)的编译好的mysql...

apollo008阅读 838

CentOS离线安装rpm包
CentOS离线安装rpm包rpm离线包的下载先找一台有网络的CentOS机器利用CentOS系统yum下载好rpm包1、yum搜索要下的软件包,比如:jdk, mosquitto {代码...} 2、利用 yum 下载所需 rpm 包,将包下载到指定目录,比如:/ho...

阿亮说技术阅读 777

CentOS安装Redis
如果要安装最新的redis,需要安装Remi的软件源,官网地址:[链接]yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm然后可以使用下面的命令安装最新版本的redis:yum --enablerepo=re...

YYGP阅读 737

粗犷型程序员

10 声望
0 粉丝
宣传栏