博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell下制作自解压安装包
阅读量:4162 次
发布时间:2019-05-26

本文共 1178 字,大约阅读时间需要 3 分钟。

原理阐述

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

程序执行逻辑如下:

1 执行程序中的shell脚本代码
2 把程序后面的部分进行解压
3 进行相关配置和安装操作
4 退出程序

应用举例

OK,看这个例子:

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

1,编写自解压脚本
cat install_script
#!/bin/bash
line=`wc -l $0|awk '{print $1}'`
line=`expr $line - 7`   //这在这里试的时候是这样,如果这个脚本总行数为10,那么这里要 -9
tail -n $line $0 |tar zx -C /tmp
cd /tmp/web
./install_web.sh
ret=$?
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

执行后程序会将所有压缩包解开,然后按照install_web.sh中的逻辑进行confire和make等操作,这里封装了linux环境下各种操作的复杂性,用起来和windows一样简单。

chmod +x web.install

注意:本源码需要以root用户执行,一共三步看到所有都ok后安装就成功了,安装后所有程序安装在/home/work/web,而且会用work用户启动mysql和apache(8080端口)。这个安装文件在我们标准的64位服务器环境上测试通过(32位环境有些库较老,需要额外编译),整个过程需要40分钟。安装过程中的临时目录在/tmp/web下,可以tail -f /tmp/web/install_web.log看详细的编译信息和进度。

转载地址:http://icixi.baihongyu.com/

你可能感兴趣的文章
Groupwise Tracking of Crowded Similar-Appearance Targets from Low-Continuity Image Sequences
查看>>
CDTS: Collaborative Detection, Tracking, and Segmentation for Online Multiple Object Segmentation
查看>>
Deep Network Flow for Multi-Object Tracking
查看>>
Multiple People Tracking by Lifted Multicut and Person Re-identification
查看>>
Multi-Object Tracking with Quadruplet Convolutional Neural Networks
查看>>
关于多目标跟踪的一点理解
查看>>
Learning by tracking:Siamese CNN for robust target association
查看>>
MUSTer:Multi-Store Tracker:A Cognitive Psychology Inspired Approach to Object Tracking
查看>>
Understanding and Diagnosing Visual Tracking Systems
查看>>
Multiple People Tracking by Lifted Multicut and Person Re-identification
查看>>
Visual Tracking Using Attention-Modulated Disintegration and Integration
查看>>
Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
查看>>
Multiple Object Tracking with High Performance Detection and Appearance Feature
查看>>
深度学习入门(上)-第一章 必备基础知识点
查看>>
ubuntu unzip解压时提示错误 解决方法
查看>>
sprintf函数的说明
查看>>
BOOST_TYPEOF和BOOST_AUTO 作用
查看>>
随机森林概述
查看>>
2011十大战略技术
查看>>
大学应该学的软件知识
查看>>