• linux离线安装软件


    1 背景

    最近被同事拉去其他项目组搭建环境,需要去客户现场。根据之前获取的信息提前编制了脚本文件和准备了工具软件。到了后一看环境,跟预想的完全不同,准备的自动化安装脚本都没有用上。环境是内网环境。操作系统银河麒麟V10操作系统。最小化安装系统。

    2 目的

    离线环境下安装软件,以nginx为例展开。

    3 思路

    思路跟计划是相辅相成的,思路明了,针对具体的环境采取具体的办法进行处理,针对安装nginx,以下推出三种方式安装nginx的方法,如果只是单纯的安装nginx可以参考另一篇文章《linux 系统下四种nginx安装方法》 本文是根据项目展开的。

    3.1 思路一

    是以获取的信息展开的,在 centos7.4为例,从网网下载了当前最新的nginx稳定版本。安装分两步走,第一步安装依赖库和软件。第二步安装nginx软件。离线环境可以,有内部yum源就可以,直接没有源,依赖就成了最大问题。卡住了。
    安装步骤如下:

    3.1.1 操作步骤

    #!/bin/bash
    # ---------------------------------------------
    # File Name   : 01-instal_nginx.sh
    # Description : install nginx
    # after install finished you need to configure nginx
    # ---------------------------------------------
    echo 'install inginx'
    echo '1-install libary'
    yum -y install gcc gcc-c++ autoconf automake make
    yum -y install pcre pcre-devel
    yum -y install zlib zlib-devel make libtool
    yum -y install openssl openssl-devel
    echo '2-create nginx user'
    groupadd nginx
    useradd nginx -g nginx -s /sbin/nologin -M
    echo '3-download nginx'
    tar -zxvf nginx-1.22.0.tar.gz
    cd nginx-1.22.0
    mkdir -p /usr/local/nginx
    ./configure --prefix=/usr/local/nginx  --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
    make && make install
    /usr/local/nginx/sbin/nginx
    echo '4-configure the nginx'
    /usr/local/nginx/sbin/nginx -s stop
    cp ../nginx.service /lib/systemd/system/
    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
    systemctl start nginx
    systemctl enable nginx.service
    systemctl status nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    nginx.service

    [Unit]
    Description=nginx
    After=network.target
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.1.2 应用场景:

    具备网络接入或者具备yum源(外部或者内部),在本次项目中此思路一被验证不适合本项目,继续思路二。

    3.2 思路二

    在具备网里接入条件下安装跟内外系统相同的操作系统。通过另一台服务器将需要安装的依赖库和软件下载下来,将下载的软件包拷贝上传至内网服务器环境,安装部署

    3.2.1 操作步骤

    准备目录

    # nginx 程序目录
    mkdir  -p /home/deploy/nginx
    # nginx 依赖库 gcc
    mkdir -p /home/deploy/nginx/gcc
    # nginx 依赖库 openssl
    mkdir -p /home/deploy/ngiinx/openssl
    # nginx 依赖库 pcre
    mkdir -p /home/deploy/nginx/pcre
    # nginx 依赖库 zlib
    mkdir -p /home/deploy/nginx/zlib
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    下载依赖

    下载gcc
    进入创建的目录

    cd /home/deploy/nginx/gcc
    
    • 1

    下载

    yum -y install gcc-c++ --downloadonly --downloaddir ./
    
    • 1

    在这里插入图片描述
    查看下载文件
    在这里插入图片描述
    下载openssl
    进入openssl目录

    cd /home/deploy/nginx/openssl
    
    • 1

    下载

    yum -y install openssl openssl-devel --downloadonly --downloaddir ./
    
    • 1

    在这里插入图片描述
    查看下载文件
    在这里插入图片描述
    下载pcre
    进入目录

    cd /home/delpy/nginx/pcre
    
    • 1

    下载

    yum -y install pcre pcre-devel --downloadonly --downloaddir ./
    
    • 1

    在这里插入图片描述
    下载zlib
    进入下载目录

    cd /home/deploy/ngiinx/zlib
    
    • 1

    下载

    yum -y install zlib zlib-devel --downloadonly --downloaddir ./
    
    • 1

    在这里插入图片描述
    针对已经安装的软件包,可以查看,
    cat /etc/yum.repos.d/kylin_x86_64.repo
    访问里面的baseurl后的地址,在打开的浏览器中Ctrl+F 输入软件包查看下载
    在这里插入图片描述

    3.2.2 应用场景

    具备双网里环境,针对下载的离线包,拷贝安装至离线服务器进行安装。

    3.3 思路三

    针对服务器在3台以上,思路二固然可行但是效率大打折扣,有没有一种方式能比方案二更省点事呢?不如搭建个局域网yum源。yum源搭建完毕后,思路一也就可以正常执行了。

    3.3.1 下载iso

    可以通过官网或其他方式下载,参考麒麟V10

    3.3.2 挂载镜像

    将镜像上传至服务器

    mkdir -p /home/deploy/iso
    mkdir -p /mnt/iso
    
    • 1
    • 2

    挂载至/mnt目录下

    mount -o loop -t /home/deply/iso/Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso /mnt/iso
    
    • 1

    返回 mount: /mnt: WARNING: source write-protected, mounted read-only. 说明挂载成功

    3.3.3 配置yum源

    备份原yum源

    mkdir -p /etc/yum.repos.d/backup
    mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
    
    • 1
    • 2

    配置本地yum源

    vi /etc/yum.repos.d/kylin_v10.repo

    [kylin_v10.repo]
    name=kylin_v10.repo
    baseurl=file:///mnt/iso
    enabled=1
    gpgcheck=0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    生效yum配置

    创建目录

    mkdir -p /home/deploy/httpd
    
    • 1

    下载httpd

    yum -y install httpd --downloadonly --downloaddir ./
    
    • 1

    安装

    cd /home/deloy/httpd
    rpm -ivh *.rpm
    systemctl start httpd
    # 开启防火墙80端口
    # firewall-cmd --add-port=80/tcp --permanent
    # 重启防火墙
    # firewall-cmd --reload
    # 查询端口 - yes为开启成功,no为端口未开启
    # firewall-cmd --query-port=80/tcp
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    设置访问目录
    httpd服务默认访问路径是/var/www/html/,需创建/mnt/iso目录做个软链接到这个目录

    # ln -s /mnt/iso /var/www/html/
    
    • 1

    验证
    浏览器地址栏中输入 部署的服务器的IP地址/

    更改yum文件

    vi /etc/yum.repos.d/kylin_v10.repo

    [kylin_v10.repo]
    name=kylin_v10.repo
    baseurl=http://xxx.xx.xx.xx/iso
    enabled=1
    gpgcheck=0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    更新局域网服务器的kylin_v10.repo文件

    yum clean all
    yum makecache
    yum list
    
    • 1
    • 2
    • 3

    确认无误后,运行思路一中的脚本进行安装。

  • 相关阅读:
    Java设计模式教程
    uni单选radio
    使用遗传算法优化模糊隶属函数以实现最优模糊控制
    一键合并多个TXT文本,将保存在TXT的快递单号进行一键合并
    为啥外行都觉得程序员的代码不值钱?
    [开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具
    idea引入MybatisPlus,其中mapper文件中的方法提示 @MapKey is required
    [go 面试] 构建高效微服务通信:选择合适的通信方式
    Unittest框架--自动化
    机器学习(三十四):可视化决策树的四个方法
  • 原文地址:https://blog.csdn.net/shallow72/article/details/125608440