1 介绍

有的生产环境是没有网络的,我们部署rpm包的时候会出现缺少很多rpm包的依赖问题,都去网上下载实在太麻烦,今天介绍一个办法可以解决这一问题。

2 解决方案

找一台可以联网的机器,在上边下载相应的rpm包。

使用命令:

#yum install rpmname--downloadonly --downloaddir=/rpmpath

命令解释:

此命令只是下载相关的rpm包,并下载相应的依赖。

Rpmname为rpm包的名字如httpd等

/rpmpath为下载的rpm包存放位置。

之后会下载很多依赖包,我们可以打包下载下来,通过移动设备传输到没有网的设备上之后就可以安装了。

3 安装rpm及相关依赖

3.1 方法一(推荐)

一个一个安装,但是比较麻烦,看这个包缺哪些依赖。依此安装。

使用rpm –ivh ****进行安装

3.2 方法二

如果能保证联网的机器和没有联网的机器环境一样,可以直接使用rpm –ivh –nodeps来进行安装。因为环境一样缺少的依赖包都相同,但是很少有这样的情况,因为联网的机器可能依赖包会安装。所以不建议这样操作。

4 举例说明

比如我使用要通过rpm包安装docker但是生产环境没有外网。我通过我的云服务器下载rpm及其依赖包。

4.1 下载依赖包

# yum install yum-utils --downloadonly --downloaddir=/root/dockerrpm/

# yum install policycoreutils-python --downloadonly --downloaddir=/root/dockerrpm/

# yum install docker-ce-18.06.1.ce --downloadonly --downloaddir=/root/dockerrpm/     

# ls /root/dockerrpm/ #会下载以下包

audit-2.8.1-3.el7_5.1.x86_64.rpm    libsemanage-python-2.5-11.el7.x86_64.rpm python-kitchen-1.1.1-5.el7.noarch.rpm

audit-libs-2.8.1-3.el7_5.1.x86_64.rpm libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm setools-libs-3.3.8-2.el7.x86_64.rpm

audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm policycoreutils-python-2.5-22.el7.x86_64.rpm yum-utils-1.1.31-46.el7_5.noarch.rpm

checkpolicy-2.5-6.el7.x86_64.rpm python-chardet-2.2.1-1.el7_1.noarch.rpm

libcgroup-0.41-15.el7.x86_64.rpm python-IPy-0.75-6.el7.noarch.rpm

4.2 安装

# rpm -ivh audit-libs-2.8.1-3.el7_5.1.x86_64.rpm

# rpm -ivh audit-2.8.1-3.el7_5.1.x86_64.rpm

# rpm -ivh audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm

# rpm -ivh checkpolicy-2.5-6.el7.x86_64.rpm

# rpm -ivh libcgroup-0.41-15.el7.x86_64.rpm

# rpm -ivh libsemanage-python-2.5-11.el7.x86_64.rpm

# rpm -ivh python-IPy-0.75-6.el7.noarch.rpm

# rpm -ivh setools-libs-3.3.8-2.el7.x86_64.rpm

# rpm -ivh policycoreutils-python-2.5-22.el7.x86_64.rpm

# rpm -ivh container-selinux-2.68-1.el7.noarch.rpm

# rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm

# rpm -ivh docker-ce-18.06.1.ce-3.el7.x86_64.rpm

这样就解决了所有的依赖问题。可以成功的把docker安装到没有互联网的机器上

当生产环境由于安全原因处于断网状态的时候。通过本地源的方式,使用yum能够自动安装软件,并且自动处理好依赖关系。然而该方法最最关键的一个问题是——怎么获取该软件及其依赖包,供本地源使用?当安装软件的依赖包较少的话,通过手动的方式,一个个查找并下载,也许是一个可以考虑的方案,而当一个软件有上百个依赖、并且依赖上又有依赖,这时候你再试试?如果真的觉得很无力,那么downloadonly跟yumdownloade绝对是两个值得尝试的神器。本文简单介绍downloadonly跟yumdownloade的使用方法。
downloadonly的安装和使用
1、安装downloadonly
 
sudo yum install yum-plugin-downloadonly1
2、downloadonly使用
格式:yum install –downloadonly+软件名称,如:
 
sudo yum install --downloadonly nano1
默认情况下软件下载的路径在/var/cache/yum/x86_64/7/base/packages/下。如:上面命令下载的nano软件包位置如下图所示:
 
我们还可以指定软件包的下载路径。需要加入参数–downloaddir参数。
格式:yum install –downloadonly –downloaddir= your-dir  package-name,如:
 
sudo yum install --downloadonly --downloaddir=/root/package/nano nano1
此时,下载的nano包存放在/root/package/nano目录下,如图所示:
 
注:/root/package/nano目录要先存在。
 
yumdownloade的安装和使用
1、安装yumdownloade
 
sudo yum install yum-utils -y1
2、yumdownloade使用
格式:sudo yumdownloader 软件名,如:
 
sudo yumdownloader nano 1
默认情况下,下载的包会被保存在当前目录中,我们需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件。与yum命令不同的是,任何依赖包不会被下载。我们可以通过加参数,使得下载包的过程中同时下载依赖以及自定义下载位置,格式为:yumdownloader 软件名 –resolve –destdir=保存目录
例如:
 
sudo yumdownloader httpd --resolve --destdir=/root/package/httpd
12
查看下载的httpd及其依赖,结果如图所示:

Linux 非互联网环境安装依赖包的更多相关文章

  1. git克隆项目到本地&&全局安装依赖项目&&安装依赖包&&启动服务

     一.安装本地开发环境 1.安装本项目 在需要保存到本地的项目的文件夹,进入到文件夹里点击右键,bash here,出现下图: 2.安装依赖项目  3.安装依赖包(进入到命令行) # 安装依赖包 $ ...

  2. 安装依赖包时--save-dev以及-save的区别及意义

    首先这样做会生成一个package.json的配置文件,并在里面增加相应的版本信息,以后运行程序时,安装依赖包可以直接 npm  install或者你有安装淘宝镜像,那就cnpm install 就一 ...

  3. Linux课程---9、安装RPM包(RPM的全称是什么)

    Linux课程---9.安装RPM包(RPM的全称是什么) 一.总结 一句话总结: redhat package management 1.在Packages中查找和php相关的文件如何查找? ls ...

  4. Linux Centos7部署环境安装-CentOS

    Linux Centos7部署环境安装-CentOS Centos7部署环境安装及Linux常用命令 centos系统下各文件夹的作用 centos7修改系统默认语言 centos7安装rz/sz命令 ...

  5. 5.Python安装依赖(包)模块方法介绍

    1.前提条件 1). 确保已经安装需要的Python版本 2). 确保已经将Python的目录加入到环境变量中 2. Python安装包的几种常用方式 1). pip安装方式(正常在线安装) 2). ...

  6. Linux Object-C 编译环境安装

    sudo apt-get install gnustep sudo apt-get install gnustep-devel sudo apt-get install gobjc . /usr/sh ...

  7. CDH平台搭建解决离线安装依赖包的方法

    背景介绍: 1CDH开发平台在搭建的过程中,会遇到各种各样的问题,其中的各种依赖就是一个很让人头痛的问题.如果安装脚本文件出现了这种问题,那么就可以把以下的这种方法加入shell中,但是不要用yum来 ...

  8. CodeIgniter 技巧 - 通过 Composer 安装 CodeIgniter 框架并安装依赖包

    PHP 项目中,通过 Composer 来管理各种依赖包,类似 Java 中的 Maven,或 Node 中的 npm.CodeIgniter 框架要想通过 Composer 自动加载包也很简单,步骤 ...

  9. 为什么安装了淘宝镜像,永用cnpm安装依赖包会报错,而用npm就不会?报错:cnpm : 无法加载文件 C:\Users\93457\AppData\Roaming\npm\cnpm.ps1。。。。

    cnpm - 解决 " cnpm : 无法加载文件 C:\Users\93457\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本.有关详细信息 ... ...

随机推荐

  1. ios开发将截图保存到相册

    - (void)loadImageFinished:(UIImage *)image { UIImageWriteToSavedPhotosAlbum(image, self, @selector(i ...

  2. 超文本css样式换行

    之前有关于LODOP中纯文本换行的相关博文:Lodop纯文本英文-等符号自动换行问题纯文本的遇到不拆分的单词的时候,可以通过LODOP 语句设置允许标点溢出,且英文单词拆开.超文本需要通过css样式控 ...

  3. 05点睛Spring MVC 4.1-服务器端推送

    转发:https://www.iteye.com/blog/wiselyman-2214626 5.1 服务器端推送 SSE(server send event)是一种服务器端向浏览器推送消息的技术, ...

  4. MYSQL:基础——索引原理及慢查询优化

    MYSQL:基础——索引原理及慢查询优化 索引的数据结构 索引的数据结构是B+树.如下图所示,B+树的节点通常被表示为一组有序的数据项和子指针.图中第一个节点包含数据项3和5,包含三个指针,第一个指针 ...

  5. C++拾忆

    1.引用 1.建立引用的时候,必须初始化,引用一旦初始化,就和一个对象绑定,不能再修改为其他对象的引用 2.对引用取地址,和对原始对象取地址,是同一个地址 3.不能用做引用的:void.数组 2.内联 ...

  6. redis服务操作

    端口启动服务./redis/redis-2.8.19/src/redis-server /redis/conf/r6100.conf./redis/redis-2.8.19/src/redis-ser ...

  7. 1.IO的演进

      1.Java IO 演进之路 本文围绕着一下几个问题 1.Java 中 BIO.NIO.AIO 之间的区别及应用场景. 2.阻塞(Block)与非阻塞(Non-Block)区别. 3.同步(Syn ...

  8. MYSQL 八大优化方案

    1.选取最适用的字段属性 ​ MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设 ...

  9. Java调用SqlLoader将大文本导入数据库

    Java调用SqlLoader将大文本导入数据库 业务场景:将一千万条数据,大约500M的文本文档的数据导入到数据库 分析:通过Java的IO流解析txt文本文档,拼接动态sql实现insert入库, ...

  10. JS实现可用滑块滑动的缓动图

    尝试模仿京东的"发现好货"模块的可用滑块滑动的缓动图 JS代码 function $(id) { return document.getElementById(id); } //缓 ...