基于shell的自解压安装

基于shell的自解压安装

利用shell脚本可以制作自动安装程序。基本原理是创建一个文件,前半部分是shell脚本,后半部分是tar和gzip,bzip2等建立的压缩文件。shell脚本调用文件后半部分数据,解压到一个临时目录,再转到解压后的安装文件安装,最后清理环境并退出。

脚本main_script.sh如下面:

#!/bin/bash
echo ""
echo "欢迎使用XXXX安装程序"
echo ""

export TMPDIR=`mktemp -d /tmp/anyname.XXXXXX`

ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0`

tail -n+$ARCHIVE $0 | tar xzv -C $TMPDIR

CDIR=`pwd`
cd $TMPDIR
./installer   # 改为压缩包中安装程序的地址

cd $CDIR
rm -rf $TMPDIR

exit 0

__ARCHIVE_BELOW__

上面例子使用一个tar和gzip压缩打包并以.tar.gz为后缀的压缩文件(myfile.tar.gz)。这个文件解压所后的目录里包含一个install的可执行程序,也这是程序的安装程序。现在可以把这两个文件链接成我们的安装程序了。

$ cat main_script.sh myfile.tar.gz > myinstaller
$ chmod u+x myinstaller