相信大家在一台无法连接外网的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仓库,不过软件的依赖依然可以使用此方案。);

解决linux安装软件依赖的曲线救国方案的更多相关文章

  1. 解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

    在linux系统中安装软件:/lib/ld-linux.so.2: bad ELF interpreter怎么解决 常用的安装因为系统软件位数问题,如:64位系统中安装了32位程序了, 是因为64位系 ...

  2. 解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter问题

    问题:64位系统中安装了32位程序解决办法 是因为64位系统中安装了32位程序 解决方法: yum install glibc.i686

  3. Ubuntu使用dpkg安装软件依赖问题解决 ubuntu-tweak ubuntu 16.04 LTS 系统清理

    Ubuntu使用dpkg安装软件依赖问题解决 这里以在ubuntu 16.04安装Ubuntu Tweak为例进行说明,通常安装包依赖问题都可以用这种方法解决: sudo apt-get instal ...

  4. linux安装软件的几种方法----linux下编译安装软件的一般步骤

    linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

  5. linux安装软件时/usr/lib/python2.7/site-packages/urlgrabber/grabber.py文件异常

    linux安装软件时,经常出现以下异常信息 Traceback (most recent call last): File , in <module> main() File , in m ...

  6. 阿里云Linux安装软件镜像源

    阿里云Linux安装软件镜像源 阿里云是最近新出的一个镜像源.得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云Linux安装镜像源地址:http://mirrors.aliyun. ...

  7. 解决ubuntu安装软件has install-snap change in progress错误

    解决ubuntu安装软件has install-snap change in progress错误 2018年05月06日 13:45:39 山间明月江上清风_ 阅读数:14316 标签: ubunt ...

  8. Linux安装软件时90%的人会遇到这个报错,如何解决?

    提示 Could not get lock /var/lib/dpkg/lock 报错? 有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示: E: Could not ...

  9. Linux安装软件总结(二.几种安装命令介绍)

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

随机推荐

  1. Linux中的LVM和软RAID

        在实际工作中,会经常碰到所给的服务器硬盘容量太小,而实际的应用软件中却需要一个容量较大的分区进行数据存储等,除了通过硬件RAID卡来实现合并多硬盘外,其实我们也可以通过软件的方式来实现. 实验 ...

  2. hdu 5046 二分+DLX模板

    http://acm.hdu.edu.cn/showproblem.php?pid=5046 n城市建k机场使得,是每个城市最近机场的距离的最大值最小化 二分+DLX 模板题 #include < ...

  3. 开源WebGIS实施方案(六):空间数据(PostGIS)与GeoServer服务迁移

    研发环境的变更,或者研发完成进行项目现场实施.运维的时候,经常就会面临数据及服务的迁移,这其中就包含空间数据以及GeoServer服务的迁移工作. 这里需要提醒的是:如果采用的是类似的开源WebGIS ...

  4. MYC编译器源码之语法分析

    MyC编译器采用自顶向下的方法进行语法解析,这种语法解析方式,一般是从最左边的Token开始,然后自顶向下看哪一条语法规则可能包含这个Token,如果包含这个Token,则自左向右根据这条语法规则逐一 ...

  5. c#快速导出到Excel

    导出到Excel,基本是很多单据的标配功能了.笔者之前将Datagridview的数据导出到Excel时,将数据一个单元格一个单元格的写入,效率奇慢, 1030条数据花费了将近70s的时间.后来借鉴了 ...

  6. Oracle树结构查询按层级排序

    SQL代码: SELECT t.* FROM pt_org_info t START CONNECT BY t.par_id = PRIOR t.id ORDER SIBLINGS BY t.id; ...

  7. xt

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. 使用math.js进行javascript精确计算

    javascript进行浮点运算会有尾差,比如算个0.1+0.7试试,得到的不是0.8 .这个问题可以使用math.js解决. Math.js是一款开源的JavaScript和Node.js数学库,用 ...

  9. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

  10. 用layui遇到过的问题

    1.报错“layui.form is not a function”问题 把代码中这一串修改一下:form = layui.form(); 括号去掉就行: form = layui.form; 如果你 ...