利用 yum 和 rpm 命令离线安装软件的方法
我们在 Linux 环境中安装软件时经常使用 yum 命令,yum 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装,在使用 yum 命令时服务器必须能够连接互联网。但在生产环境中,出于安全考虑,有些 Linux 服务器不允许连接互联网,此时可以采用以下策略来安装软件:
(1)部署一台和服务器环境相同的能够联网的服务器,在该服务器上使用带 downloadonly 和 downloaddir 参数的 yum 命令把所需的 rpm 包下载到本地。
(2)把 rpm 包拷贝到目标服务器,使用 rpm 命令安装本地的 rpm 包。下面以安装 vim 软件为例,安装过程如下:
一、操作系统环境
部署两台虚拟机,操作系统均为 CentOS7.3,最小化安装:
操作系统版本信息:
[root@localhost etc]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
机器一IP地址:192.168.1.11
机器二IP地址:192.168.1.12
假设机器一可以连接互联网,而机器二不能连接互联网,需要在机器二上安装软件。
二、操作系统环境
部署两台虚拟机,操作系统均为 CentOS7.3,最小化安装:
操作系统版本信息:
[root@localhost etc]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
机器一IP地址:192.168.1.11
机器二IP地址:192.168.1.12
假设机器一可以连接互联网,而机器二不能连接互联网,需要在机器二上安装软件。
三、使用能联网的服务器下载 rpm 包
使用带 downloadonly 和 downloaddir 参数的 yum 命令把所需的 rpm 下载到本地。命令如下:
# 在机器一(192.168.1.11)上依次执行如下命令:
# 1、在 home 下创建一个目录
[root@localhost tmp]# cd /home
[root@localhost home]# mkdir soft
[root@localhost home]# ls
soft
# 下载 rpm 包
[root@localhost home]# yum install -y --downloadonly --downloaddir=/home/soft vim
已加载插件:fastestmirror
......
总计 1.7 MB/s | 18 MB 00:00:11
exiting because "Download Only" specified
# 查看下载的 rpm 包
[root@localhost home]# ls /home/soft
gpm-libs-1.20.7-6.el7.x86_64.rpm perl-libs-5.16.3-295.el7.x86_64.rpm perl-Storable-2.45-3.el7.x86_64.rpm
perl-5.16.3-295.el7.x86_64.rpm perl-macros-5.16.3-295.el7.x86_64.rpm perl-Text-ParseWords-3.29-4.el7.noarch.rpm
perl-Carp-1.26-244.el7.noarch.rpm perl-parent-0.225-244.el7.noarch.rpm perl-threads-1.87-4.el7.x86_64.rpm
perl-constant-1.27-2.el7.noarch.rpm perl-PathTools-3.40-5.el7.x86_64.rpm perl-threads-shared-1.43-6.el7.x86_64.rpm
perl-Encode-2.51-7.el7.x86_64.rpm perl-Pod-Escapes-1.04-295.el7.noarch.rpm perl-Time-HiRes-1.9725-3.el7.x86_64.rpm
perl-Exporter-5.68-3.el7.noarch.rpm perl-podlators-2.5.1-3.el7.noarch.rpm perl-Time-Local-1.2300-2.el7.noarch.rpm
perl-File-Path-2.09-2.el7.noarch.rpm perl-Pod-Perldoc-3.20-4.el7.noarch.rpm vim-common-7.4.629-6.el7.x86_64.rpm
perl-File-Temp-0.23.01-3.el7.noarch.rpm perl-Pod-Simple-3.28-4.el7.noarch.rpm vim-enhanced-7.4.629-6.el7.x86_64.rpm
perl-Filter-1.49-3.el7.x86_64.rpm perl-Pod-Usage-1.63-3.el7.noarch.rpm vim-filesystem-7.4.629-6.el7.x86_64.rpm
perl-Getopt-Long-2.40-3.el7.noarch.rpm perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm
perl-HTTP-Tiny-0.033-3.el7.noarch.rpm perl-Socket-2.010-5.el7.x86_64.rpm
四、把 rpm 包复制到目标服务器
执行如下命令:
# 在机器二(192.168.1.12)上执行如下命令:
# 创建一个接收 rpm 包的目录
[root@localhost home]# cd /home
[root@localhost home]# mkdir rpm
[root@localhost home]# ls
rpm
# 在机器一(192.168.1.11)上执行如下命令,把下载的 rpm 包复制到机器二上:
[root@localhost rpm]# scp /home/soft/* 192.168.1.12:/home/rpm/
root@192.168.1.12's password:
gpm-libs-1.20.7-6.el7.x86_64.rpm 100% 32KB 32.3KB/s 00:00
perl-5.16.3-295.el7.x86_64.rpm 100% 8161KB 8.0MB/s 00:00
perl-Carp-1.26-244.el7.noarch.rpm 100% 19KB 19.2KB/s 00:00
perl-constant-1.27-2.el7.noarch.rpm
.......
五、在目标服务器上安装 rpm 包
在机器二(192.168.1.12)上安装 rpm 包,命令如下:
[root@localhost home]# cd /home/rpm
[root@localhost rpm]# ls
gpm-libs-1.20.7-6.el7.x86_64.rpm perl-libs-5.16.3-295.el7.x86_64.rpm perl-Storable-2.45-3.el7.x86_64.rpm
perl-5.16.3-295.el7.x86_64.rpm perl-macros-5.16.3-295.el7.x86_64.rpm perl-Text-ParseWords-3.29-4.el7.noarch.rpm
perl-Carp-1.26-244.el7.noarch.rpm perl-parent-0.225-244.el7.noarch.rpm perl-threads-1.87-4.el7.x86_64.rpm
perl-constant-1.27-2.el7.noarch.rpm perl-PathTools-3.40-5.el7.x86_64.rpm perl-threads-shared-1.43-6.el7.x86_64.rpm
perl-Encode-2.51-7.el7.x86_64.rpm perl-Pod-Escapes-1.04-295.el7.noarch.rpm perl-Time-HiRes-1.9725-3.el7.x86_64.rpm
perl-Exporter-5.68-3.el7.noarch.rpm perl-podlators-2.5.1-3.el7.noarch.rpm perl-Time-Local-1.2300-2.el7.noarch.rpm
perl-File-Path-2.09-2.el7.noarch.rpm perl-Pod-Perldoc-3.20-4.el7.noarch.rpm vim-common-7.4.629-6.el7.x86_64.rpm
perl-File-Temp-0.23.01-3.el7.noarch.rpm perl-Pod-Simple-3.28-4.el7.noarch.rpm vim-enhanced-7.4.629-6.el7.x86_64.rpm
perl-Filter-1.49-3.el7.x86_64.rpm perl-Pod-Usage-1.63-3.el7.noarch.rpm vim-filesystem-7.4.629-6.el7.x86_64.rpm
perl-Getopt-Long-2.40-3.el7.noarch.rpm perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm
perl-HTTP-Tiny-0.033-3.el7.noarch.rpm perl-Socket-2.010-5.el7.x86_64.rpm
# 查看机器上是否安装有 vim
[root@localhost rpm]# vim abc
-bash: vim: 未找到命令
# 开始安装
[root@localhost rpm]# rpm -ivh *.rpm
警告:gpm-libs-1.20.7-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:perl-parent-1:0.225-244.el7 ################################# [ 3%]
2:perl-HTTP-Tiny-0.033-3.el7 ################################# [ 6%]
3:perl-podlators-2.5.1-3.el7 ################################# [ 10%]
4:perl-Pod-Perldoc-3.20-4.el7 ################################# [ 13%]
5:perl-Pod-Escapes-1:1.04-295.el7 ################################# [ 16%]
6:perl-Text-ParseWords-3.29-4.el7 ################################# [ 19%]
7:perl-Encode-2.51-7.el7 ################################# [ 23%]
8:perl-Pod-Usage-1.63-3.el7 ################################# [ 26%]
9:perl-constant-1.27-2.el7 ################################# [ 29%]
10:perl-Carp-1.26-244.el7 ################################# [ 32%]
11:perl-Exporter-5.68-3.el7 ################################# [ 35%]
12:perl-Filter-1.49-3.el7 ################################# [ 39%]
13:perl-libs-4:5.16.3-295.el7 ################################# [ 42%]
14:perl-macros-4:5.16.3-295.el7 ################################# [ 45%]
15:perl-File-Path-2.09-2.el7 ################################# [ 48%]
16:perl-File-Temp-0.23.01-3.el7 ################################# [ 52%]
17:perl-PathTools-3.40-5.el7 ################################# [ 55%]
18:perl-Scalar-List-Utils-1.27-248.e################################# [ 58%]
19:perl-Socket-2.010-5.el7 ################################# [ 61%]
20:perl-Storable-2.45-3.el7 ################################# [ 65%]
21:perl-threads-1.87-4.el7 ################################# [ 68%]
22:perl-threads-shared-1.43-6.el7 ################################# [ 71%]
23:perl-Time-HiRes-4:1.9725-3.el7 ################################# [ 74%]
24:perl-Pod-Simple-1:3.28-4.el7 ################################# [ 77%]
25:perl-Getopt-Long-2.40-3.el7 ################################# [ 81%]
26:perl-Time-Local-1.2300-2.el7 ################################# [ 84%]
27:perl-4:5.16.3-295.el7 ################################# [ 87%]
28:vim-filesystem-2:7.4.629-6.el7 ################################# [ 90%]
29:vim-common-2:7.4.629-6.el7 ################################# [ 94%]
30:gpm-libs-1.20.7-6.el7 ################################# [ 97%]
31:vim-enhanced-2:7.4.629-6.el7 ################################# [100%]
# 安装成功,查看 vim 命令是否可以使用
[root@localhost rpm]# vim /tmp/abc.txt
I am a teacher.