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

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

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

我们将这个文件的最后一行的 \ 和后面的空格全部删除。

好了,到这里,我们的第一个组件 re2c 的安装包已经接近制作完成了,下面我们还要制
作安装 build 组件的软件包。

创建 build 组件的安装目录。
$ mkdir -p /usr/work/build

同样的道理,我们进入到 /usr/work/build 目录下:
$ cd /usr/work/build

创建卷标文件(这里,我们依然假定使用 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=02

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

拷贝需要安装的文件到该目录下。(我们假定你的 build 软件都放在 /tmp/build 目录下。


$ cp /tmp/build/* .

创建系统安装和卸载时的脚本执行文件 init.build 和 build.rmv。
$ cd /usr/work/build
$ mkdir -p usr/lib/custom
$ cd tmp
$ >init.build
$ cd /usr/work/build/usr/lib/custom
$ >build.rmv

创建文件内容信息文件
$ cd /usr/work/build
$ find . -print >build.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=02
./tmp/init.build
./usr
./usr/lib
./usr/lib/custom
./usr/lib/custom/build.rmv
./usr/local
./usr/local/build
./usr/local/build/bin
./usr/local/build/bin/buildParse
./usr/local/build/bin/buildCompress
./usr/local/build/bin/buildArchiver
此时,我们将该文件备份 2 份,文件名可以自定,这里我定义为 build01.files 和
build02.files .
$ cp build.files build01.files
$ cp build.files build02.files

然后,我们修改 build01.files ,将其中的所有目录去掉(这样做的目的是为了压缩软件
包,减少发行介质的使用,如果你不想发布经过压缩的版本,本步骤可以不做)。
修改后的 build01.files 文件内容如下:
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=02
./tmp/init.build
./usr/lib/custom/build.rmv
./usr/local/build/bin/buildParse
./usr/local/build/bin/buildCompress
./usr/local/build/bin/buildArchiver

然后,我们生成压缩脚本文件。
$ buildCompress build01.files compress.files

下面,我们开始生成你要发布的软件包的信息文件,修改你的 build02.files 文件,将该
文件中的公共目录部分去掉,只保留你自己的私有目录和所有需要发布的文件。
修改后的文件内容如下:
./tmp/_lbl/prd=MyPackages/typ=os50/rel=1.0/vol=02
./tmp/init.build
./usr/lib/custom/build.rmv
./usr/local/build
./usr/local/build/bin
./usr/local/build/bin/buildParse
./usr/local/build/bin/buildCompress
./usr/local/build/bin/buildArchiver

好了,我们开始生成信息包临时文件,我取名字为 perms.files。
$ buildParse build02.files perms.files BUILD bin bin 02

执行这个命令后,你就初步生成了你的软件包信息文件。该文件的大体内容如下。
BUILD F755 bin/bin 1 ./tmp/_lbl/prd=/MyPackages/typ=os50/rel=1.0/vol=02
   02
BUILD F755 bin/bin 1 ./tmp/init.build   02
BUILD F755 bin/bin 1 ./usr/lib/custom/build.rmv  02
BUILD F755 bin/bin 1 ./usr/local/build   02
BUILD F755 bin/bin 1 ./usr/local/build/bin   02
BUILD F755 bin/bin 1 ./usr/local/build/bin/buildParse  02
BUILD F755 bin/bin 1 ./usr/local/build/bin/buildCompress  02
BUILD F755 bin/bin 1 ./usr/local/build/bin/buildArchive  02

同样的,我们还要修改文件的属性和权限。
如 ./usr/local/build 我们将其属性 F755 修改为 D644  等,修改后的内容如下:

BUILD F755 bin/bin 1 ./tmp/_lbl/prd=/MyPackages/typ=os50/rel=1.0/vol=02
   02
BUILD F755 bin/bin 1 ./tmp/init.build   02
BUILD F755 bin/bin 1 ./usr/lib/custom/build.rmv  02
BUILD D644 bin/bin 1 ./usr/local/build   02
BUILD D644 bin/bin 1 ./usr/local/build/bin   02
BUILD F755 bin/bin 1 ./usr/local/build/bin/buildParse  02
BUILD F755 bin/bin 1 ./usr/local/build/bin/buildCompress  02
BUILD F755 bin/bin 1 ./usr/local/build/bin/buildArchive  02

同样的道理,我们希望其他的任何用户都可以调用它,那么我们还需要编写安装脚本
文件 init.build,在其中加入如下语句:
ln -s /usr/local/build/bin/buildParse /usr/bin/buildParse >/dev/null 2>&1;
ln -s /usr/local/build/bin/buildCompress /usr/bin/buildCompress >/dev/null 2>&1;
ln -s /usr/local/build/bin/buildArchive /usr/bin/buildArchive >/dev/null 2>&1;

同样,我们卸载后,还是要把这些空链接删除,我们修改 build.rmv 文件,在其中加入
如下语句:

rm -rf /usr/bin/buildParse >/dev/null 2>&1;
rm -rf /usr/bin/buildCompress >/dev/null 2>&1;
rm -rf /usr/bin/buildArchive >/dev/null 2>&1;

同样,当我们卸载所有的包的时候,这些动作也必须执行,因此我们还得在
MyPackages.rmv 中加入同样的语句:

修改后,Mypackages.rmv 文件的完整内容如下:
rm -rf /usr/bin/re2c >/dev/null 2>&1 ;
rm -rf /usr/bin/buildParse >/dev/null 2>&1;
rm -rf /usr/bin/buildCompress >/dev/null 2>&1;
rm -rf /usr/bin/buildArchive >/dev/null 2>&1;

下面,我们进入到前面的 re2c/tmp/perms 目录下,修改总的信息包信息说明文件
MyPackages.perms 文件,在这个文件的最后加入 build 组件包的总信息。
#
#!BUILD  1350 BUILD For SCO OpenServer 5.0.X  ( version 1.0 )
#
然后在这行后面(也是这个文件的最后)读入 build/perms.files 文件。
这样修改后的软件包信息文件 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)
#
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
#
#!BUILD  1350 BUILD For SCO OpenServer 5.0.X  ( version 1.0 )
#
BUILD  F755  bin/bin  1  

./tmp/_lbl/prd=/MyPackages/typ=os50/rel=1.0/vol=02   02
BUILD  F755  bin/bin  1  ./tmp/init.build      02
BUILD  F755  bin/bin  1  ./usr/lib/custom/build.rmv    02
BUILD  D644  bin/bin  1  ./usr/local/build      02
BUILD  D644  bin/bin  1  ./usr/local/build/bin      02
BUILD  F755  bin/bin  1  ./usr/local/build/bin/buildParse    02
BUILD  F755  bin/bin  1  ./usr/local/build/bin/buildCompress   02
BUILD  F755  bin/bin  1  ./usr/local/build/bin/buildArchive   02

好了,我们的信息包的信息文档已经准备完毕了,请仔细体会例子一和例子二的信息包
文件的不同之处,特别是 PERM 、ALL 等部分,已经增加的总的删除脚本文件

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