Centos 6 断网情况下如何安装软件包

问题如下

比如我们安装nginx的时候需要依赖openssl,在有网络的情况下我们可以流畅的执行如下命令

yum -y install openssl openssl-devel

但是再实际部署中我们的服务器可能是没有网络的,那么在这种情况下我们如何处理呢,openssl需要依赖的rpm包好多,而且有依赖项,如何一个个找出顺序,会比较麻烦

方法一 安装的时候强制全部安装(但是必须要所以的rpm包都安装)

方法二 定制本地yum源(就能继续使用yum命令了)

首先找到rpm包

上面所说的两种方式都必须找到安装openssl所需要的rpm包,那么这些rpm包从哪里来呢?那么首先先理解下yum安装为什么方便,说白了就是安装的时候把你安装openssl所需要的rpm包全部down下来了,然后安装的时候自动匹配依赖项,所以yum安装的时候会down下依赖包,所以思路就是从yum命令中找出下载rpm包

1. 在虚拟机上面安装一个CentOS(网络选择NAT模式),然后下载一个yum插件用来执行只下载的命令

# 
yum install yum-plugin-downloadonly

2. 执行命令

# 命令的意思是下载openssl的相关rpm 比保存到/opt/yums目录下面
yum install --downloadonly --downloaddir=/opt/yums openssl

方法一 强制安装rpm包

#简单粗暴
rpm -i --force --nodeps *.rpm

方法二 定制自己的yum源

默认yum源是https联网到repository,但是我们可以定义一个源,而地址是指向本地,所以我们需要做的工作是

  • 制作repository
  • 替换Centos中的yum源

制作repository

#下载插件
yum install createrepo
# 第一次执行 CentOS6里面包含了各种rmp包
createrepo CentOS6
# 以后添加rpm包更新源
createrepo --update CentOS6

替换Centos中的yum源

cd /etc/yum.repos.d/
vi CentOS-Local.repo

输入如下命令

[base-local]
name=CentOSLocal
baseurl=file:///opt/CentOS6/
# 不对rmp包检查
gpgcheck=0

保存以后执行如下命令

# 清除缓存
yum clean all
# 列出可用仓库
yum repolist

然后我们就可以愉快的使用yum命令了。

标签:Centos 发布于:2019-11-04 13:15:10