linux使用shell脚本安装应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux使用shell脚本安装应用相关的知识,希望对你有一定的参考价值。

linux系统下时常会需要安装或升级更新各种应用包,安装方式多样化,如果存在编译安装会更灵活自由选择扩展,方便达到应用目标,当然如果没有特殊要求还是不建议使用编译安装,毕竟安装时间长失败率高。

目前主要安装升级方式

安装包管理器
比如:yum、apt
优点:安装快速方便,成功率高
缺点:安装选项固定,安装可选版本不多,很少安装最新版

应用容器镜像
比如:docker
优点:安装方便,成功率高,可安装各种版本、方便并存多个版本
缺点:安装选项固定,需要安装docker,安装需要查找众多的镜像库

管理套件工具
比如:rpm、deb
优点:安装快速方便,成功率高,可安装各种版本
缺点:安装选项固定,只有部分应用支持

官方提供的安装脚本
比如:docker安装脚本
优点:安装方便,成功率高,可安装各种版本
缺点:只有部分应用支持

即下即用
比如:elasticsearch
优点:安装快速方便、成功率高、可安装各种版本
缺点:只支持非编译型应用

编译安装
比如:cmake、make
优点:可安装各种版本、灵活选择安装项、方便并存多个版本
缺点:安装复杂、成功率不高、安装时间长

安装方式不需要局限,能满足当前需求环境和条件即可,尤其是选择了编译安装,很多不常安装或安装新版容易出现依赖不兼容导致编译配置出错。为了方便编译安装所以特意在工作之余写了一个shell快速安装脚本集,虽然安装成功率并不是很高(系统版本越高安装成功率越高,还在不断完善中),但也减少了编译安装的复杂性,如果在安装过程中出现失败或对安装脚本有更好的建议欢迎提issues。

github地址:https://github.com/ttlxihuan/shell

安装脚本提供有:phpnginx、svn、git、elasticsearch、apache、python、postgresql、mongodb、redis、varnish、gcc、mysql。后续会不断增加和优化,期间也需要更多的人参与完善安装脚本。

安装脚本结构

config.sh ———— 不同系统基本依赖包配置
basic.sh ———— 编译、下载、解压、版本获取、工作目录、等基本处理函数库
install.sh ———— 本机批量安装脚本
remote-install.sh ———— 远程批量安装脚本
install.conf ———— 批量安装配置
包名-install.sh ———— 各应用包安装脚本

安装脚本主要分为

本机单独安装
bash 包名-install.sh new
比如:bash nginx-install new

本机批量安装
bash install.sh

远程批量安装
bash remote-install.sh

注意:批量安装需要配置 install.conf 文件,指定批量安装的包名与版本及其它参数,如果是远程批量安装还需要配置远程服务器的ssh账号与密码(此账号密码一定要注意保密)。

1、安装时使用new则会自动获取最新稳定版本进行安装
2、安装选项在各包的安装脚本中已经定义好了,需要修改参考下面编译参数调整

编译参数调整

直接增加选项
修改 CONFIGURE_OPTIONS 变量,直接按标准选项来添加,注意最后需要留下一个空格,给自动生成选项连接。

自动生成选项
修改 ADD_OPTIONS 变量,这种修改可以兼容不同版本的选项,允许添加启用和禁用选项。需要启用选项使用 xx 或 ?xx 解析后是 --enable-xx 或 --with-xx。需要禁用选项使用 !xx 或 ?!xx 解析后是 --disable-xx。注意在选项前增加?会判断是否存在这个选项,如果不存在则跳过,反之必需存在这个选项否则生成不通过。

特别说明

此安装脚本并不能保证绝对安装成功,失败主要原因有:下载依赖或安装包失败、依赖存在多版本冲突。虽然脚本目前还不成熟稳定但不会损坏系统。部分会创建服务的包会自动创建对应的用户名,如果有要求的可以另行修改。

以上是关于linux使用shell脚本安装应用的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

Shell ❀ Linux系统磁盘快速挂载执行脚本

Shell ❀ Linux系统磁盘快速挂载执行脚本

Shell ❀ Linux系统磁盘快速挂载执行脚本

Linux shell脚本编程详解及应用实例

快速入门Linux基础+环境配置+shell脚本