相信你们在一台没法链接外网的linux上安装软件时,对于软件依赖的安装,都会特别头疼,由于软件依赖的安装,不管是其数量,仍是安装的复杂度都比软件自己要高出一个维度!node
今天就和你们分享一个,解决linux安装软件依赖的曲线救国方案,但愿你们之后均可以愉快的安装软件!linux
首先,要和你们介绍一个很是好用的插件yum-plugin-downloadonly,这个插件的做用是从yum仓库下载目标软件及其所需依赖。apache
// 安装插件 $ 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服务器为例进行本文主题的演示。centos
准备条件:服务器
一、一台CentOS 6.5的linux,没法链接外网,记为服务器A;spa
二、一台CentOS 6.5的linux,能够链接外网,记为服务器B;插件
如今,咱们须要在服务器A上安装apache服务器,咱们先在服务器B上下载软件及依赖:code
// 下载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上:blog
// 进入文件所在目录
$ cd /root/downloads/httpd
// 忽略依赖安装目录下全部的软件 $ sudo rpm -Uvh --nodeps --replacefiles *.rpm
至此,apache服务器就安装完毕了,是否是比平时的方式要简单不少。get
凡事皆有两面性,如下是此方案的缺点:
1)目标服务器和源服务器版本必须相同;(因为CentOS是从RedHat编译过来的 ,所以两者能够互通,咱们的生产环境就是这种状况。)
2)没法使用软件的最新版本,只能使用yum仓库中的版本(通常最新软件只能在官网下载,可能未及时收录到yum仓库,不过软件的依赖依然可使用此方案。);