背景
企业客户服务器个别都是在内网,并且会限度服务器拜访外网,保障服务器的平安,但这样造成了很多不便,比方 yum 之类的包装置工具就无奈应用,做得好的企业会搭建一个公有仓库,仓库能够代理到地方仓库,但依据教训,大部分企业都做不好公有仓库,很多程序用 yum 一行命令就能够装置好,如果离线装置,须要装置好所有的依赖,还不肯定能装置好,那么如何在离线状况下也能借助 yum 安装程序呢,本文就来探讨这个问题。
实现
其实 yum 最不便的是能够帮咱们解决依赖关系,并且主动装置好所有的依赖,假如 yum 能够把所有的依赖都下载下来,那么其实就解决了最麻烦的问题,咱们拿到这些依赖一个个装置好就行。侥幸的是,yum 不仅提供下载依赖的性能,而且能够一次性装置好所有下载好的依赖。咱们以装置 openssl 为例。
下载
首先你须要找一台跟内网服务器操作系统版本统一的服务器用来下载依赖包,以 Centos 为例,查看操作系统版本号
# more /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
你能够在本地用虚拟机创立同版本的操作系统,也能够到阿里云创立一个同版本的抢占式实例,总之你得找一台能拜访外网的同版本服务器,失常咱们装置 openssl 须要执行以下命令
yum install openssl
将命令换成以下能够只下载不装置
# yumdownloader --assumeyes --destdir=/u01/software/openssl --resolve openssl
已加载插件:langpacks
--> 正在查看事务
---> 软件包 openssl.x86_64.1.1.0.2k-21.0.3.el7_9 将被 装置
--> 正在解决依赖关系 openssl-libs(x86-64) = 1:1.0.2k-21.0.3.el7_9,它被软件包 1:openssl-1.0.2k-21.0.3.el7_9.x86_64 须要
--> 正在查看事务
---> 软件包 openssl-libs.x86_64.1.1.0.2k-16.0.1.el7 将被 降级
--> 正在解决依赖关系 openssl-libs(x86-64) = 1:1.0.2k-16.0.1.el7,它被软件包 1:openssl-1.0.2k-16.0.1.el7.x86_64 须要
---> 软件包 openssl-libs.x86_64.1.1.0.2k-21.0.3.el7_9 将被 更新
--> 正在查看事务
---> 软件包 openssl.x86_64.1.1.0.2k-16.0.1.el7 将被 降级
--> 解决依赖关系实现
No Presto metadata available for ol7_latest
(1/2): openssl-1.0.2k-21.0.3.el7_9.x86_64.rpm | 493 kB 00:00:02
(2/2): openssl-libs-1.0.2k-21.0.3.el7_9.x86_64.rpm | 1.2 MB 00:00:03
# ll /u01/software/openssl
总用量 1732
-rw-r--r--. 1 root jomoo 505244 5 月 14 05:01 openssl-1.0.2k-21.0.3.el7_9.x86_64.rpm
-rw-r--r--. 1 root jomoo 1254768 5 月 14 05:01 openssl-libs-1.0.2k-21.0.3.el7_9.x86_64.rpm
装置
将下载的 rpm 包打包上传到内网服务器,放到指定目录,比方 /u01/software/openssl
,执行以下命令即可装置
yum install -y --cacheonly --disablerepo=* /u01/software/openssl/*.rpm
论断
很久以前听一个老前辈讲过,在没有 yum 的时候,他们在服务器上装 svn,一个人搞了一天,当初只有一行命令,yum 的确极大不便了程序的装置,本文介绍的办法尽管简略,但能解决离线应用 yum 的问题,是十分有用的办法