免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1221 | 回复: 0
打印 上一主题 下一主题

linux下run安装包的制作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-08 09:50 |只看该作者 |倒序浏览
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安装包制作较小的程序包是很好的选择,但是它也有缺点,做逻辑比较复杂的安装包,写的安装脚本将会很麻烦。因此此时还是用其他的安装包更好。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17928/showart_317292.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP