linux离线安装软件
linux离线安装软件
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
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
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
下载依赖
下载gcc
进入创建的目录
cd /home/deploy/nginx/gcc
下载
yum -y install gcc-c++ --downloadonly --downloaddir ./
查看下载文件
下载openssl
进入openssl目录
cd /home/deploy/nginx/openssl
下载
yum -y install openssl openssl-devel --downloadonly --downloaddir ./
查看下载文件
下载pcre
进入目录
cd /home/delpy/nginx/pcre
下载
yum -y install pcre pcre-devel --downloadonly --downloaddir ./
下载zlib
进入下载目录
cd /home/deploy/ngiinx/zlib
下载
yum -y install zlib zlib-devel --downloadonly --downloaddir ./
针对已经安装的软件包,可以查看,
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
挂载至/mnt目录下
mount -o loop -t /home/deply/iso/Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso /mnt/iso
返回 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
配置本地yum源
vi /etc/yum.repos.d/kylin_v10.repo
[kylin_v10.repo]
name=kylin_v10.repo
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
生效yum配置
创建目录
mkdir -p /home/deploy/httpd
下载httpd
yum -y install httpd --downloadonly --downloaddir ./
安装
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
设置访问目录
httpd服务默认访问路径是/var/www/html/,需创建/mnt/iso目录做个软链接到这个目录
# ln -s /mnt/iso /var/www/html/
验证
浏览器地址栏中输入 部署的服务器的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
更新局域网服务器的kylin_v10.repo文件
yum clean all
yum makecache
yum list
确认无误后,运行思路一中的脚本进行安装。
更多推荐
所有评论(0)