解决linux安装软件依赖的曲线救国方案

相信大家在一台无法连接外网的linux上安装软件时,对于软件依赖的安装,都会特别头疼,因为软件依赖的安装,不论是其数量,还是安装的复杂度都比软件本身要高出一个维度!

 

今天就和大家分享一个,解决linux安装软件依赖的曲线救国方案,希望大家以后都可以愉快的安装软件!

 

首先,要和大家介绍一个非常好用的插件yum-plugin-downloadonly,这个插件的作用是从yum仓库下载目标软件及其所需依赖。

 

// 安装插件
$ sudo yum install yum-plugin-downloadonly -y

/* * 语法示例 * downloadonly:标记只下载不安装
* setopt=protected_multilib=false:避免“Protected multilib versions”错误,我们只想安静的下载所有依赖 * downloaddir:指定下载目录
* target_dir:指定依赖的存储位置
* soft_name:软件名称,可以yum search <keyword>去获取
*/ $
yum install --downloadonly --setopt=protected_multilib=false --downloaddir=<target_dir> <soft_name>

 

有了插件yum-plugin-downloadonly的支持,接下来我将以安装apache服务器为例进行本文主题的演示。

 

准备条件:

1、一台CentOS 6.5的linux,无法连接外网,记为服务器A;

2、一台CentOS 6.5的linux,可以连接外网,记为服务器B;

现在,我们需要在服务器A上安装apache服务器,我们先在服务器B上下载软件及依赖:

// 下载apache服务器软件及依赖
$ sudo yum install --downloadonly --setopt=protected_multilib=false --downloaddir=/root/downloads/httpd httpd.x86_64
$ cd /root/downloads/httpd
// 查看下载好的文件
$ ls
apr-1.3.9-5.el6_9.1.x86_64.rpm       apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm  httpd-tools-2.2.15-69.el6.centos.x86_64.rpm
apr-util-1.3.9-3.el6_0.1.x86_64.rpm  httpd-2.2.15-69.el6.centos.x86_64.rpm     mailcap-2.1.31-2.el6.noarch.rpm

 

将下载好的文件,拷贝至服务器A上:

// 进入文件所在目录
$ cd /root/downloads/httpd
// 忽略依赖安装目录下所有的软件 $
sudo rpm -Uvh --nodeps --replacefiles *.rpm

至此,apache服务器就安装完毕了,是不是比平时的方式要简单很多。

 

凡事皆有两面性,以下是此方案的缺点:

1)目标服务器和源服务器版本必须相同;(由于CentOS是从RedHat编译过来的 ,因此二者可以互通,我们的生产环境就是这种情况。)

2)无法使用软件的最新版本,只能使用yum仓库中的版本(一般最新软件只能在官网下载,可能未及时收录到yum仓库,不过软件的依赖依然可以使用此方案。);

 

posted @ 2019-02-13 09:22  歪头杀的小三花  阅读(759)  评论(0编辑  收藏  举报