中国青基会
RSS
热门关键字:  None  linux+moodle安装  mac  rhel5  199
当前位置 : Nixsky>UNIX>SCO UNIX>列表

在 SCO OpenServer 环境中制作 tar 格式的 custom 安装包

来源:CU 作者:snow888 时间:2007-05-02 点击:

我们在 re2c.perms 文件中先输入如下内容:

#
#prd=re2c
#typ=os50
#rel=0.9.11
#set="Re2c For SCO OpenServer 5.0.X  ( version 0.9.11)"
#
# User id's:
#
uid root  0
uid bin  3
#
# Group id's:
#
gid root  0
gid bin  3
#
#
#!RE2C  1350 Re2c For SCO OpenServer 5.0.X  ( version 0.9.11)

然后,我们将前面得到的软件包信息文件的临时信息 perms.files 读入进来 得到完整的信

息包说明文件。

#
#prd=re2c
#typ=os50
#rel=0.9.11
#set="Re2c For SCO OpenServer 5.0.X  ( version 0.9.11)"
#
# User id's:
#
uid root  0
uid bin  3
#
# Group id's:
#
gid root  0
gid bin  3
#
#
#!RE2C  1350 Re2c For SCO OpenServer 5.0.X  ( version 0.9.11)
RE2C F755 bin/bin 1 ./tmp/_lbl/prd=re2c/typ=os50/rel=0.9.11/vol=01 

        01
RE2C F755 bin/bin 1 ./tmp/init.re2c   01
RE2C F755 bin/bin 1 ./tmp/perms/re2c.perms  01
RE2C F755 bin/bin 1 ./usr/lib/custom/re2c.rmv  01
RE2C F755 bin/bin 1 ./usr/local/re2c   01
RE2C F755 bin/bin 1 ./usr/local/re2c/bin   01
RE2C F755 bin/bin 1 ./usr/local/re2c/bin/re2c  01
RE2C F755 bin/bin 1 ./usr/local/re2c/usr   01
RE2C F755 bin/bin 1 ./usr/local/re2c/usr/man  01
RE2C F755 bin/bin 1 ./usr/local/re2c/usr/man/man1  01
RE2C F755 bin/bin 1 ./usr/local/re2c/usr/man/man1/re2c.1 01

然后,我们修改这个文件,将其中的文件属性修改正确。

比如:re2c 文件,我们可以修改成 X755 ,re2c.1 文件我们可以修改成

F644,./usr/local/re2c 我们可以修改成 D644 等。

好了,我们的软件包信息说明文件已经建立完毕了,下面我们开始编写安装脚本文件
 re2c.init 这完全是一个脚本文件,这里,我们希望这个文件可以被任何用户自由使用,
那么,我希望它的链接存在于 /usr/bin 目录下,因此,我们在该文件中编写这样的内容

ln -s /usr/local/re2c/bin/re2c /usr/bin/re2c >/dev/null 2>&1 ;

由于,我们的软件在删除后,这个链接指向的文件将不存在,因此,我们还需要编写删
除脚本文件,用于在这个软件包卸载后,能自动清理创建的链接。
我们在 ./usr/lib/custom/re2c.rmv 文件中输入如下内容。

rm -rf /usr/bin/re2c >/dev/null 2>&1 ;

好了,到这里,我们就已经接近于成功了。

下面,我们将生成打包的 shell 脚本文件。这里文件名我们依然可以随意定义。我定义为
tar.sh 运行如下命令:

buildArchive build01.files tar.sh VOL.000.000

运行后生成的文件 tar.sh 的内容如下:

tar Cvf VOL.000.000 ./tmp/_lbl/prd=re2c/typ=os50/rel=0.9.11/vol=01 \
./tmp/init.re2c \
./tmp/perms/re2c.perms \
./usr/lib/custom/re2c.rmv \
./usr/local/re2c/bin/re2c \
./usr/local/re2c/usr/man/man1/re2c.1 \

我们将这个文件的最后以行的 \ 和后面的空格全部删除,然后执行它,得到我们的安装
包。最后,我们将所有生成的文件压缩:
$ sh compress.files

生成压缩安装包 VOL.000.000
$ sh tar.sh

好了,到这里,我们的制作过程全部完成。你可以使用 custom 来安装这个软件包了。
^_^.
[ 例一完 ]


[ 例二:包含有多个组件包的安装包的制作过程 ]

下面,我们说说多组件 tar 格式 custom 安装包的制作方法。

在这里,我们还以上面的 re2c 包为例,再加入本软件包 build 为蓝本来加以讲解。

同样的道理,TAR 格式的安装包至少需要五个(或者更多)最基本的控制文件:
/tmp/init.组件名简称  (你的软件包包含有几个组件,就有几个这样的文件)
/tmp/perms/包文件名.perms
/usr/lib/custom/包文件名.rmv
/usr/lib/custom/组件名.rmv
/tmp/_lbl/prd=包文件名/typ=os版本/rel=软件包的版本号/vol=卷标  (如果每个组件占用一
个软件介质发布的卷,那么有几个组件,就需要几个卷标文件。

这五个(或者更多)文件的功能说明如下。
# -------------------------------
# /tmp/init.组件名简称
# -------------------------------
这是安装脚本文件,该文件在安装程序拷贝其他的软件包后开始执行,主要完成程序包
运行环境的初始化工作。

# -------------------------------------------
# /tmp/perms/软件包简称.perms
# -------------------------------------------
软件包的信息说明文件,该文件包含你要发布的软件包的文件,宿主关系,文件的执行
权限,每个文件分属于哪个安装卷,等等。也包含软件包名,软件包运行的环境,软件
包的版本等信息。

# -------------------------------------------
# /usr/lib/custom/包文件名.rmv
# ------------------------------------------
卸载该软件包的脚本文件。如果您由于某种原因要卸载该软件包,那么在卸载过程开始
之前,该文件被运行,它一般是执行所有的 “/tmp/init.组件名简称” 文件的逆操作。

# -------------------------------------------
# /usr/lib/custom/组件名简称.rmv
# ------------------------------------------
卸载该组件包的脚本文件。如果您由于某种原因要卸载该组件包,那么在卸载过程开始
之前,该文件被运行,它一般是执行的本组件的 “/tmp/init.组件名简称” 文件的逆操作。


# ---------------------------------------------------------------------------------------------
# /tmp/_lbl/prd=包文件名/typ=os版本/rel=软件包的版本号/vol=卷标
# ---------------------------------------------------------------------------------------------
软件包的卷号,主要是确定软件发行介质是否真实有效。


以下就这五个(也许更多)文件的建立来加以说明,我们以 re2c-0.9.11 和 build 组成一
个软件包为例来加以说明。

这里我假设我们准备安装的软件包的文件名为 MyPackages ,版本为 1.0 。

假设,我们的 re2c 组件安装以后的内容如下:

/usr/local/re2c/bin/re2c
/usr/local/re2c/usr/man/man1/re2c.1

同时假设 我们的 build 组件安装以后的内容如下:

/usr/local/build/bin/buildCompress
/usr/local/build/bin/buildParse
/usr/local/build/bin/buildArchive

首先,我们在一个打包用户下建立将来需要安装的文件系统和路径。如:我们可以建立
一个 work 用户,然后在该用户下操作。

进入 work 用户:
login:work
passwd: <you passwd>

创建需要制作安装包的文件在 work 用户下的 Re2c 组件的相关目录。

$  mkdir re2c
$ cd re2c

创建卷标文件(这里,我们假定使用 sco3.2v5.0.x 系统)

$ mkdir -p tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0
$ cd tmp/_lbl_prd=MyPackages/typ=os50/rel=1.0
$ >vol=01

创建文件安装路径(我们假定安装到 /usr/local 目录下去)
$ cd /usr/work/re2c
$ mkdir -p usr/local
$ cd usr/local

拷贝需要安装的文件到该目录下。
$ cp /tmp/re2c/* .

创建系统安装和卸载时的脚本执行文件 init.re2c 和 re2c.rmv,以及整个软件包的卸载脚
本文件 MyPackages.rmv 。
$ cd /usr/work/re2c
$ mkdir -p usr/lib/custom
$ cd tmp
$ >init.re2c
$ cd /usr/work/re2c/usr/lib/custom
$ >re2c.rmv
$ >MyPackages.rmv

创建包文件信息库文件 MyPackages.perms。
$ cd /usr/work/re2c/tmp
$ mkdir perms
$ cd perms
$ >MyPackages.perms

创建 re2c 文件内容信息文件
$ cd /usr/work/re2c
$ find . -print >re2c.files

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册