用最基本命令在Linux下实现自解压安装


在Linux下可以用几个最基本的命令制作一个自解压的程序。说说原理先,利用cat 命令可以将两个文件连起来(用>>追加也能达到同样效果),前一个文件是shell脚本,负责执行解压和安装;后一个文件是一个压缩包。把这两个文件合并成一个新的可执行文件(前面是解压程序),就具有自动解压和安装的功能了。这里比较重要的命令是tail -n将后多少行(也就是压缩文件)进行解压。

OK,看这个例子:

当前目录下有一个压缩文件web.tar.gz 和一个文本文件install_script

1,编写自解压脚本
cat install_script
#!/bin/bash
line=`wc -l $0|awk '{print $1}'`
line=`expr $line - 10`
tail -n $line $0 |tar zx -C /tmp
#cd /tmp/web
#./install_web.sh
ret=$?
#这几个空行很必要,不然就影响 $line - 10中的10了
#
#
exit $ret

这个就是负责解压和安装web.tar.gz的脚本

2,制作安装tar包
web.tar.gz是一个包含最常用的mysql+apache+php源码包的一个tar包合集

ls web/
httpd-2.2.8.tar.gz install_web.sh mysql-5.0.51b.tar.gz php-5.2.6.tar.gz
其中install_web.sh是安装脚本(什么configure,make等都可以写在这里)。

3,生成自解压安装程序
cat install_script web.tar.gz >web.install
chmod +x web.install

4,执行自动安装程序
./web.install

完了。

相关内容