Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1042833
  • 博文数量: 326
  • 博客积分: 10135
  • 博客等级: 上将
  • 技术积分: 2490
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-22 23:53
文章分类

全部博文(326)

文章存档

2014年(1)

2012年(4)

2011年(1)

2010年(4)

2009年(41)

2008年(44)

2007年(63)

2006年(168)

我的朋友

分类: LINUX

2007-06-08 09:50:09

run程序安装包实质上是一个安装脚本加要安装的程序,如下图所示:

|-----------------|
|                 |
|     安装脚本     |
|                 |
|-----------------|
|                 |
|      程序        |
|                 |
|-----------------|
图: run安装包的结构

这样整个run安装包结构就一目了然了,实际上因为实际需要结构多少有点变动但这个无关紧要,只需要明白原理就行了。
制作run安装包以下举个实际的例子:
为了简单起见,要安装的程序就是helloworld程序,安装它的过程就是把它拷贝到
/bin目录下。
$ ls
install.sh helloworld
$ cat install.sh
#
!/bin/bash
cp helloworld 
/bin
$
现在有一个安装脚本了,名为install.sh,有一个要安装的程序helloworld.因为要安装的程序一般都是用.tar.bz2来做的。我们这儿也做一下:
$ tar jcvf helloworld.tar.bz2 helloworld
现在修改一个安装脚本install.sh
改为:
#
!/bin/bash
lines
=7      #这个值是指这个脚本的行数加1,这个脚本共有6行
tail 
+$lines $0 >/tmp/helloworld.tar.gz # $0表示脚本本身,这个命令用来把从$lines开始的内容写入一个/tmp目录的helloworld.tar.gz文件里。
tar jxvf 
/tmp/hellowrold.tar.gz
cp helloworld 
/bin
exit 
0

然后使用cat命令连接安装脚本install.sh和helloworld.tar.bz2。
$ cat install.sh helloworld.tar.bz2 
> myinstall.run
这样就得到了myinstall.run文件,它的结构如下:
|------------------| 第1行
|                  |
|    install.sh    |
|                  | 第6行
|------------------|
|                  | 第7行
|helloworld.tar.bz2|
|                  |
|------------------| 结尾
图: myinstall.run安装包的结构

运行myinstall.run时,运行到第6行的exit 0脚本就退出了,所以不会去运行第7行以下的二进制数据(即 helloworld.tar.bz2文件),而我们用了tail巧妙地把第7行以下的数据重新生成了一个helloworld.tar.gz文件。再执行安装。

run安装包制作较小的程序包是很好的选择,但是它也有缺点,做逻辑比较复杂的安装包,写的安装脚本将会很麻烦。因此此时还是用其他的安装包更好。
阅读(1608) | 评论(0) | 转发(0) |
0

上一篇:vsftp的配置(转)

下一篇:什么是MD5?

给主人留下些什么吧!~~