在有外网的情况下,可以用yum很容易的完成服务及其相关依赖的安装。而由于客户要求,导致生产服务器上无法连通外网。于是在搭建生产环境的时候,由于外网不通,导致缺少依赖的问题频频出现。
现将解决此类问题的方法归纳如下:
-
直接下载(此方法适用于缺少单个或个别依赖的情况下)
- 通过有网环境下载缺少的rpm包
- 上传至生产服务器
- 通过yum localinstall *.rpm 安装
-
通过虚拟机安装(此方法适用于缺少依赖数量很多的情况下)
- 在有网环境下创建一个与生产环境相同操作系统的虚拟机。
- 确认yum正常。
-
修改配置文件/etc/yum.conf,keepcache=1
# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
......
-
通过yum install <package_name> 安装相关服务
-
查找yum缓存的rpm文件,并将其上传至生产服务器
# find /var/cache/yum/ -name "*.rpm"
- 在生产服务器上,通过yum localinstall *.rpm 安装。
- 比如yum localinstall a.rpm,提示需要安装 b.rpm,那么可以先yum localinstall b.rpm
- 比如yum localinstall a.rpm ,提示需要安装 b.rpm ,再执行yum localinstall b.rpm ,又提示需要安装a.rpm,那么可以直接这样:yum localinstall a.rpm b.rpm
- 现有包影响不大的情况下,可卸载现有包,重新安装与之版本相匹配的包。
-
现有包影响大的情况(比如为linux的系统相关的包),可通过忽略版本检验来安装rpm包(不确定相关服务是否会因此而运行异常),比如:
rpm -ivh nfs-utils-1.3.0-0.65.el7.x86_64.rpm gssproxy-0.7.0-26.el7.x86_64.rpm krb5-libs-1.15.1-37.el7_7.2.x86_64.rpm libini_config-1.3.1-32.el7.x86_64.rpm libref_array-0.1.5-32.el7.x86_64.rpm libverto-libevent-0.2.5-4.el7.x86_64.rpm libbasicobjects-0.1.1-32.el7.x86_64.rpm libcollection-0.7.0-32.el7.x86_64.rpm libpath_utils-0.2.1-32.el7.x86_64.rpm libevent-2.0.21-4.el7.x86_64.rpm libtirpc-0.2.4-0.16.el7.x86_64.rpm keyutils-1.5.8-3.el7.x86_64.rpm libpath_utils-0.2.1-32.el7.x86_64.rpm libnfsidmap-0.25-19.el7.x86_64.rpm quota-4.01-19.el7.x86_64.rpm rpcbind-0.2.0-48.el7.x86_64.rpm quota-nls-4.01-19.el7.noarch.rpm tcp_wrappers-7.6-77.el7.x86_64.rpm --force --nodeps
若有遗漏或偏颇之处,还请指出,以便大家共同成长。