Cat将所有安装包打包一个可执行文件(bin等),实现一键安装

0、参考

1、文件分布

- install.sh

- run.sh

- ai_server_arrange

        - build_all.sh

        - 其他安装包

2、各个文件的代码

1、构建可执行文件脚本:run.sh

#!/bin/bash
# 1、将需要安装的离线包,和安装脚本打包
tar -czvf ./combat.tar.gz ./ai_server_arrange
# 2、将安装脚本和压缩包打包成可执行文件
cat install.sh combat.tar.gz > installer.bin
# 3、给可执行的权限
sudo chmod +x installer.bin

2、安装脚本: install.sh

#!/bin/bash
lines=14   #这个值是指这个脚本的行数加 1,这个脚本共有 14 行
tail -n +$lines $0 >./combat.tar.gz     # $0 表示脚本本身,这个命令用来把从 $lines 开始的内容写入一个 combat.tar.gz 文件里。combat.tar.gz 这个文件就是步骤一>得到的压缩文件,可以自行替换名称后缀和路径
cleanup() { 
    rm -f combat.tar.gz
    rm -r -f ai_server_arrange
}
trap cleanup SIGINT # ctrl + c 中断时清理文件
tar zxvf ./combat.tar.gz  #解压该文件
cd ai_server_arrange/ && bash build_all.sh # 运行调用build_all.sh脚本,安装deb等文件或其他安装命令
cd ../ && rm -r ai_server_arrange # 删除生成的文件
exit 0

3、运行

sudo chmod +x installer.bin
sudo ./installer.bin

4、生成的结果 

猜你喜欢

转载自blog.csdn.net/caip12999203000/article/details/134998640