在Linux下的安装包不像windows那么方便,windows一般采用nsis这种软件,可以一步一步的引导,上手难度低。linux下一般采用 cat 命令 把一个脚本和所需文件合起来,在执行脚本的同时把文件解压开,然后可以达到单安装包的目的。像 condaqt 等linux的版本多采用这种方法制作安装包。

打包

准备安装文件

本案例目录为 install_files ,里面装的就是安装所需文件,然后打包为tgz格式。

1
2
3

tar zcvf install_files.tgz install_files

准备脚本文件

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env bash
set -Eeuo pipefail
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)

lines=13
mkdir -p /tmp/.soft_temp
tail -n +$lines $0 >/tmp/.soft_temp/install_files.tgz
tar zxvf /tmp/.soft_temp/install_files.tgz -C /tmp/.soft_temp



exit 0
  • 第5行 : 13位当前脚本的行数加一
  • 第12行: 必须 exit ,不然会把数据文件当脚本执行导致错误

末尾不要有空行

修改脚本内容后,记得修改lines

打包

1
2
3

cat install.sh install_files.tgz > install_run.sh

cat 后必须要先跟脚本,再跟文件

测试