经过此步骤后,你的文件包内容信息文件 re2c.files 的内容可能如下。
./
./tmp
./tmp/_lbl
./tmp/_lbl/prd=MyPackages
./tmp/_lbl/prd=MyPackages/typ=os50
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=01
./tmp/init.re2c
./tmp/perms/MyPackages.perms
./usr
./usr/lib
./usr/lib/custom
./usr/lib/custom/MyPackages.rmv
./usr/lib/custom/re2c.rmv
./usr/local
./usr/local/re2c
./usr/local/re2c/bin
./usr/local/re2c/bin/re2c
./usr/local/re2c/usr
./usr/local/re2c/usr/man
./usr/local/re2c/usr/man/man1
./usr/local/re2c/usr/man/man1/re2c.1
此时,我们将该文件备份 2 份,文件名可以自定,这里我定义为 build01.files 和
build02.files .
$ cp re2c.files build01.files
$ cp re2c.files build02.files
然后,我们修改 build01.files ,将其中的所有目录去掉(这样做的目的是为了压缩软件
包,减少发行介质的使用,如果你不想发布经过压缩的版本,本步骤可以不做)。
修改后的 build01.files 文件内容如下:
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=01
./tmp/init.re2c
./tmp/perms/MyPackages.perms
./usr/lib/custom/MyPackages.rmv
./usr/lib/custom/re2c.rmv
./usr/local/re2c/bin/re2c
./usr/local/re2c/usr/man/man1/re2c.1
然后,我们生成压缩脚本文件,并执行该压缩文件来压缩你准备发布的软件。
$ buildCompress build01.files compress.files
下面,我们开始生成你要发布的软件包的信息文件,修改你的 build02.files 文件,将该
文件中的公共目录部分去掉,只保留你自己的私有目录和所有需要发布的文件。
修改后的文件内容如下:
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=01
./tmp/init.re2c
./tmp/perms/MyPackages.perms
./usr/lib/custom/MyPackages.rmv
./usr/lib/custom/re2c.rmv
./usr/local/re2c
./usr/local/re2c/bin
./usr/local/re2c/bin/re2c
./usr/local/re2c/usr
./usr/local/re2c/usr/man
./usr/local/re2c/usr/man/man1
./usr/local/re2c/usr/man/man1/re2c.1
好了,我们开始生成信息包临时文件,我取名字为 perms.files。
$ buildParse build02.files perms.files RE2C bin bin 01
执行这个命令后,你就初步生成了你的软件包信息文件。该文件的大体内容如下。
RE2C F755 bin/bin 1
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/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/MyPackages.rmv 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
好了,我们可以开始编写完整的软件包信息文件 MyPackages.perms 了,我们使用 vi 编
辑器打开这个空文件开始编写。
首先,我们需要确定软件包的简称,使用的环境,版本,在安装时显示的软件包的名称
。
我们在 MyPackages.perms 文件中先输入如下内容:
#
#prd=MyPackages
#typ=os50
#rel=1.0
#set="MyPackages For SCO OpenServer 5.0.X ( version 1.0 )"
#
# User id's:
#
uid root 0
uid bin 3
#
# Group id's:
#
gid root 0
gid bin 3
#
#
#!ALL 1350 MyPackages For SCO OpenServer 5.0.X ( version 1.0)
然后,我们将前面得到的软件包信息文件的临时信息 perms.files 读入进来 得到完整的信
息包说明文件。
#
#prd=MyPackages
#typ=os50
#rel=1.0
#set="MyPackages For SCO OpenServer 5.0.X ( version 1.0 )"
#
# User id's:
#
uid root 0
uid bin 3
#
# Group id's:
#
gid root 0
gid bin 3
#
#
#!ALL 1350 MyPackages For SCO OpenServer 5.0.X ( version 1.0)
#
ALL F755 bin/bin 1 ./usr/lib/custom/MyPackages.rmv 01
#
PERM F755 bin/bin 1 ./tmp/perms/MyPackages.perms 01
#
#!RE2C 1350 Re2c For SCO OpenServer 5.0.X ( version 0.9.11)
RE2C F755 bin/bin 1
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=01
01
RE2C F755 bin/bin 1 ./tmp/init.re2c 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 等。
这个地方应特别注意:以下文件内容的位置和所属于的组件特性:
如信息包文件 MyPackages.perms 的所属组件包围 PERM ,而所有软件包总的卸载脚本文
件 MyPackages.rmv 所属的组件范围为 ALL 。
PERM F755 bin/bin 1 ./tmp/perms/MyPackages.perms 01
ALL F755 bin/bin 1 ./usr/lib/custom/MyPackages.rmv 01
好了,我们的 re2c 组件包信息说明文件已经建立完毕了,下面我们开始编写安装脚本文
件 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 ;
同时,由于我们需要在完整卸载所有的 MyPackages 组件的时候还需要触发卸载脚本,
因此我们还需要在 MyPackages.rmv 中加入卸载命令:
我们在 ./usr/lib/custom/MyPackages.rmv 文件中输入如下内容。
rm -rf /usr/bin/re2c >/dev/null 2>&1 ;
好了,到这里,我们的第一个软件包 VOL.000.000 就已经接近于成功了。
下面,我们将生成打包的 shell 脚本文件。这里文件名我们依然可以随意定义。我定义为
tar.sh 。
运行如下命令:
buildArchive build01.files tar.sh VOL.000.000
运行后生成的文件 tar.sh 的内容如下:
tar Cvf VOL.000.000 ./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=01 \
./tmp/init.re2c \
./tmp/perms/MyPackages.perms \
./usr/lib/custom/MyPackages.rmv \
./usr/lib/custom/re2c.rmv \
./usr/local/re2c/bin/re2c \
./usr/local/re2c/usr/man/man1/re2c.1 \
![nixsky[www.nixsky.com]](/templets/images/toplogo.gif)

