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

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

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

经过此步骤后,你的文件包内容信息文件 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 \

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