现在的位置: 首页 > 综合 > 正文

安装程序的原理与制作

2013年08月15日 ⁄ 综合 ⁄ 共 972字 ⁄ 字号 评论关闭

安装程序其实很简单,但却是很多软件特别是商业软件不可缺少的重要组成部分。在linux这个开源的世界中大部分软件都是源码发布的,下载下来一个configure+make+make install就完事了,在或者在不同平台上达成rpm或者deb的包,再或者是直接放到repo仓库中通过管理工具来更新打包。不过对于商业软件源码发表似乎很不现实,而受限于不同的发行版本的打包机制也不是商业软件的首选(当然也有很多软件更多的使用的是根据不同平台分别打包的方式)。那如何在linux上发布自己的商业软件呢?很多厂商的做法是发布一个bin文件。这个文件实现了不同平台下的自主安装的过程。

安装程序不过是安装内容组织的容器,说的简单一点就是一个压缩包,但是这个bin有解压的功能,并且自己有自己的配置系统和向导系统。而将压缩包解压是很简单的过程。如果我们的程序很简单,我们可以采用下面的方式来实现直接解压安装的功能:

  • 如果是在win下可以用winrar生成一个自解压文件的方式来做这样的简单的安装程序。
  • 如果是在linux下我们可以使用脚本来实现。
    #!/bin/bash
    INSTDIR=/default/install/path/
    
    ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0`
    tail -n+$ARCHIVE $0 | tar xzv -C $TMPDIR
    CDIR=`pwd`
    cd $TMPDIR
    ./install $INSTDIR
    cd $CDIR
    rm -rf $TMPDIR
    exit 0
    __ARCHIVE_BELOW__
    

而如果我们的软件需要一些·配置,需要与客户有些交互,并且我们需要给用户一个相应的提示,那这个过程就是我们要实现的安装程序的过程。虽然linux的哲学是让程序自动化运行而不需要要人工干预他的过程,可是那些让windows给教坏的用户们还是希望有这样的一个人机交互系统的。

而交互界面实现有两种方式,一种是将GUI的安装程序静态编译以减少对外部系统的依赖;一种是采用shell脚本来实现。文件的基本结构都是一致的,前部是预处理程序和界面程序(或脚本),后半部分是我们经过压缩的实际要安装的内容。安装过程就是将后半部分解压缩,并移动到相应位置的过程。

如果在安装过程中或结束后需要做一些工作,直接在脚本中进行就可以了。

抱歉!评论已关闭.