2
头图

最近公司一个项目的服务器因为安全因素的考虑不会提供互联网环境,不能使用yum和wget,所以只能上传离线包安装应用。

使用tar源码包安装应用应用时需要make编译,所以依赖gcc和g++环境,先查看有没有这些:

[root@localhost local]# gcc -v
bash: gcc: 未找到命令...
^C
[root@localhost local]# g++ -v
bash: g++: 未找到命令...
^C
[root@localhost local]# make -v
bash: make: 未找到命令...

好吧,啥都没有,rpm应该能用吧

[root@localhost local]# rpm
RPM 版本 4.14.3
版权所有 (C) 1998-2002 - 红帽公司。

安装gcc-c++

那就用rpm一个一个装吧,先查看一下操作系统类型版本

# 查看系统版本信息
[root@localhost local]# cat /etc/centos-release
CentOS Linux release 8.3.2011

# 查看Linux版本信息 此命令输出结果包含了系统内核版本、gcc编译器版本和Red Hat版本号
[root@localhost local]# cat /proc/version
Linux version 4.18.0-240.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri Sep 25 19:48:47 UTC 2020

根据上面的版本信息在自己有网的电脑上去 https://pkgs.org/ 下载对应的gcc-c++的rpm包
image.png
就是这个,可以看到它依赖了很多包
image.png
先不用管这些依赖的包,先把这gcc-c++-8.3.1-5.1.el8.x86_64.rpm这个包下下来传到服务器上去,在这里进行下载:
image.png
上传之前先规划好服务器存放目录:

# 个人喜欢把所有的包放在这个目录下
[root@localhost baseenv]# cd /usr/local

# 创建一个baseenv目录用于存放基础环境包
[root@localhost local]# mkdir baseenv

# 在baseenv下创建gcc-c++目录存放gcc-c++相关的包
[root@localhost local]# cd baseenv/
[root@localhost baseenv]# mkdir gcc-c++

上传之后使用rpm进行安装

[root@localhost gcc-c++]# ll
总用量 12540
-rw-r--r--. 1 root root 12839856 5月  14 05:59 gcc-c++-8.3.1-5.1.el8.x86_64.rpm

# 使用rpm进行安装
[root@localhost gcc-c++]# rpm -ivh gcc-c++-8.3.1-5.1.el8.x86_64.rpm 
警告:gcc-c++-8.3.1-5.1.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
错误:依赖检测失败:
        gcc = 8.3.1-5.1.el8 被 gcc-c++-8.3.1-5.1.el8.x86_64 需要
        libstdc++-devel = 8.3.1-5.1.el8 被 gcc-c++-8.3.1-5.1.el8.x86_64 需要
[root@localhost gcc-c++]# 

之前说不用管那些依赖是因为,那些依赖并不是所有的都需要,所以通过尝试去让系统检测我们需要那些包,然后我们根据提示去找对应的包
image.png
点进去用同样的方式进行下载安装,只有所有的依赖都安装好了,父包才能安装成功,因为有的包依赖的层级比较深,所以找包的过程比较麻烦,一共涉及到9个包:

[root@localhost gcc-c++]# ls
cpp-8.3.1-5.1.el8.x86_64.rpm           isl-0.16.1-6.el8.x86_64.rpm
gcc-8.3.1-5.1.el8.x86_64.rpm           kernel-headers-4.18.0-240.22.1.el8_3.x86_64.rpm
gcc-c++-8.3.1-5.1.el8.x86_64.rpm       libstdc++-devel-8.3.1-5.1.el8.x86_64.rpm
glibc-devel-2.28-127.el8.x86_64.rpm    libxcrypt-devel-4.1.1-4.el8.x86_64.rpm
glibc-headers-2.28-127.el8.x86_64.rpm

层级依赖关系如下:

gcc-c++-8.3.1-5.1.el8.x86_64.rpm
├── gcc-8.3.1-5.1.el8.x86_64.rpm
|   |—— cpp-8.3.1-5.1.el8.x86_64.rpm
|   |—— glibc-devel-2.28-127.el8.x86_64.rpm
|   |   |—— glibc-headers-2.28-127.el8.x86_64.rpm
|   |   |   |——kernel-headers-4.18.0-240.22.1.el8_3.x86_64.rpm
|   |   |—— libxcrypt-devel-4.1.1-4.el8.x86_64.rpm
|   |—— isl-0.16.1-6.el8.x86_64.rpm
|── libstdc++-devel-8.3.1-5.1.el8.x86_64.rpm

可以一个一个去进行rpm安装,也可以找齐所有的包之后一起进行强制安装(gcc-c++相关rpm包已上传至百度网盘-->链接:https://pan.baidu.com/s/1hmXj...
提取码:933g ,版本合适者自取):

# 忽略依赖强制安装所有rpm包
[root@localhost gcc-c++]# rpm -ivh *.rpm --nodeps --force
警告:cpp-8.3.1-5.1.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:libstdc++-devel-8.3.1-5.1.el8    ################################# [ 11%]
   2:kernel-headers-4.18.0-240.22.1.el################################# [ 22%]
   3:glibc-headers-2.28-127.el8       ################################# [ 33%]
   4:libxcrypt-devel-4.1.1-4.el8      ################################# [ 44%]
   5:glibc-devel-2.28-127.el8         ################################# [ 56%]
   6:isl-0.16.1-6.el8                 ################################# [ 67%]
   7:cpp-8.3.1-5.1.el8                ################################# [ 78%]
   8:gcc-8.3.1-5.1.el8                ################################# [ 89%]
   9:gcc-c++-8.3.1-5.1.el8            ################################# [100%]

检查以下是否安装成功

[root@localhost gcc-c++]# gcc -v
[root@localhost gcc-c++]# g++ -v

安装make

依然在 https://pkgs.org/ 中搜索make相关包
image.png
在baseenv下创建make路径存放make包,下载好rpm包后进行安装:

[root@localhost make]# ll
总用量 500
-rw-r--r--. 1 root root 509448 5月  14 06:27 make-4.2.1-10.el8.x86_64.rpm

# 安装make
[root@localhost make]# rpm -ivh make-4.2.1-10.el8.x86_64.rpm 
警告:make-4.2.1-10.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:make-1:4.2.1-10.el8              ################################# [100%]

# 安装成功后测试以下
[root@localhost make]# make -v
GNU Make 4.2.1
为 x86_64-redhat-linux-gnu 编译
Copyright (C) 1988-2016 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律允许的范围内没有其他保证。

安装nginx

环境安装好之后,使用tar包安装个nginx吧,直接将tar包传到/usr/local下,进行解压安装:

# 解压压缩包
tar -zxvf  nginx-1.20.0.tar.gz
# 切换到/usr/local/nginx-1.20.0下编译安装
./configure

运行到这一步发现不能通过了

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

因为nginx本身依赖pcre,和zlib,所以先安装这两个:

  • 安装pcre

    • 获取pcre编译安装包,在 http://www.pcre.org/ 上可以获取当前最新的版本
    • 解压缩pcre-xx.tar.gz包。
    • 进入解压缩目录,执行./configure。
    • make & make install
  • 安装zlib

    • 获取zlib编译安装包,在 http://www.zlib.net/ 上可以获取当前最新的版本。
    • 解压缩openssl-xx.tar.gz包。
    • 进入解压缩目录,执行./configure。
    • make & make install

安装好之后就可以进行nginx的安装了:

# 切换到/usr/local/nginx-1.20.0下编译安装
./configure
make
make install

至此nginx已经安装成功了,如果要进行systemd管理或安装其他应用,详情请参考我的另一篇文章 https://segmentfault.com/a/11...

参考文章:

https://www.cnblogs.com/dyd16...
https://blog.csdn.net/huaishu...


wkArtist
9 声望4 粉丝