一、简介
很多时候我们的正式生产环境会由于安全等原因而无法访问互联网,所以当我们需要某些软件的时候就要用离线安装的方法了。常见的方法分为俩种,一是rpm包安装,二是编译安装。
二、rpm包安装
rpm包安装也分为俩种,rpm命令直接安装和yum命令安装
rpm命令离线安装
rpm命令安装可以安装指定版本的软件包,但需要注意的是有的软件包和俄罗斯套娃一样需要各种依赖包,经常性的出现安装A包前要先安装B包,安装B包又需要先安装C包.......
1、先通过各种方式获取所需的所有rpm包(官网下载,命令wget下载等)
将下载的rpm包上传内网服务器
2、rpm命令
语法:
rpm 参数 软件包全名
参数:
-i 安装
-v 显示过程
-h 显示进度%
-q 查询软件包是否已安装
-a 所有,常与-q配合使用,表示查看所有已安装的软件包
-e 卸载,卸载已安装的软件包
安装软件包
yum命令离线安装(推荐)
相比于直接用rpm命令安装,yum安装有了几个优缺点
优点:yum命令安装是自动到yum源里寻找想要安装的软件包和其依赖包并按相应的顺序安装,且自动选择安装路径,集成到系统命令中,无需人为的干预
缺点:过渡依赖yum源,yum源里的软件包都是是别人编译好的,可能有着版本低,架构不同,功能受限,存在漏洞等问题
1、外网配置yum源
先准备一台能连接外网的服务器或者虚拟机(192.168.175.20),配置一个网络源,下面是我准备好的一个配置阿里源的脚本,可以直接使用
#!/bin/bash
#执行前检查是否虚拟机是否连接网络
function yum1 () {
mkdir /etc/yum.repos.d/zxb; #创建一个目录fuhai
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/zxb; #将原有的yum源都移动到目录fuhai下
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo; #下载ali源文件
yum clean all; #清除原来的缓存
yum makecache fast; #建立新的缓存,可省略
yum repolist all; #显示当前所有yum源的状态,
}
$1 #执行时输入参数 yum1
执行脚本
会生成阿里源文件
yum命令
语法:
yum 参数 软件包
参数:
install #下载
remove #卸载
search #查看当前yum源里是否有可以下载的软件包
clean #清除旧yum源的缓存
repolist #列出当前所配置yum源指向的仓库名称,状态,是否启用等信息
2、下载yum工具包,生成repotrack命令
指定下载目录,然后下载需要的软件包(其依赖包会自动下载)
repotrack 包名 -p 指定下载的目录
查看目录,会发现所有软件包和其需要的所有依赖包都被下载好了
3、为安装包目录生成yum仓库元数据
createrepo 目录名称
执行成功后,会在安装包目录下生成一个存放元数据的目录repodata
打包,压缩,上传至内网服务器(192.168.175.40)
4、在内网服务器上配置本地yum源
为模拟内网效果,我断开了网络安装
将已上传的压缩包解压
在/etc/yum.repo/目录下配置本地yum源文件,下面的配置可以参考下
需要注意的是,在/etc/yum.repo/目录下可能有其他的yum源文件,为不影响我们新yum源文件的使用,可以将此目录下的其他yum源文件移动至其他目录
[Gcc]
#池名称,表示标识名称
name=gcc
#描述
baseurl=file:///usr/local/gcc
#仓库地址写到本地安装包目录 file:// 本地 http:// 网络 ftp:// 局域网
enabled=1
#是否开启本仓库,0不开启1开启,不写此项也是开启
gpgcheck=0
# 是否检测密钥,0不检测1检测,如果本地可以选0,互联网的源,通常要为1
5、安装gcc
最后验证是否安装成功
三、编译安装(推荐)
编译安装的优缺点
优点:可以手动下载最新源码,可以按照需求设置参数,路径等
缺点:和rpm命令安装一样,无法自动解决依赖关系
1、先通过各种方式获取所需的所有源码包
下面是一些常用软件的下载网址,可以到里面获取源码包
Nginx:nginx: download
MySQL:MySQL :: Download MySQL Community Server
Redis:下载 - Redis
将下载好的二进制包上传至内网服务器并解压
2、编译、安装
进入解压后的目录会发现有一个叫做configure的脚本文件,这个脚本会检查系统环境,包括操作系统类型、CPU 架构和安装所必须的依赖项,也可以通过添加一些参数来指定安装路径、依赖包位置等。
执行完后会生成Makefile文件(编译的时候需要从里面读取指令)。
然后使用make和make insatll来进行编译和安装
需要注意的是make是安装C语言编写的应用时用的命令,Java的用javac
最后进入上面我们指定的安装目录并启动服务验证
希望能对兄弟们有一定的帮助