MyPackages.rmv 文件的意义。
好了,到这里,我们的第二个软件包 VOL.001.000 也已经接近于成功了。
下面,我们将生成 build 组件的打包 shell 脚本文件。这里文件名我们依然可以随意定义
。我定义为 tar.sh
运行如下命令:
buildArchive build01.files tar.sh VOL.001.000
运行后生成的文件 tar.sh 的内容如下:
tar Cvf VOL.001.000 ./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/buildArchive \
我们将这个文件的最后一行的 \ 和后面的空格全部删除。
好了,现在我们再回头来在 /usr/work/re2c 目录下,执行 sh Compress.files
$ sh compress.files
然后,我们再将 /usr/work/build 目录下的所有文件也同样压缩,执行 sh Compress.files
$ sh compress.files
最后的工作:
我们进入 /usr/work/re2c 生成第一个安装包文件 VOL.000.000
$ cd /usr/work/re2c
$ sh tar.sh
进入 /usr/work/build 生成第二个安装包文件 VOL.001.000
$ cd /usr/work/build
$ sh tar.sh
现在,我们就将生成的这两个文件 VOL.000.000 和 VOL.001.000 拷贝到一个目录下,
如 /tmp 。
现在,你可以使用 custom 来安装这个软件包了。
^_^.
[ 例二 完 ]
最后:是 buildCompress、buildParse、buildArchive 这三个文件的用法和说明。
===============================================================
buildCompress 源文件名 目标文件名
用于生成压缩软件包内所有文件的 shell 脚本。
buildParse 源文件名 目标文件名 包文件简称(这里必须大写) 宿主用户名 宿主用户组
名 所属卷号用于生成临时软件包信息文件。这里的所属卷好入 01 、02 等 ... ...
buildArchive 源文件名 目标文件名 卷文件名
用于生成打包软件包的 shell 脚本文件,这里的卷文件名 如 VOL.000.000 或者是
VOL.001.000 等。
最后的说明:这个 TAR 格式的安装包,在我所实验的过程中,发现不能包含有链接文件
,否则打包文件将不能被正确安装。解决的办法是把生成链接文件的过程写入到 “init.软
件包简称” 文件中,然后在 “软件包简称.rmv” 文件中写入逆向操作的命令。
特别注意事项:
一、关于 tar 命令不能打包空目录问题的解决方案:
解决该问题可以在空目录下创建一个 0 字节的空文件 ( > 文件名),然后修改由
buildArchive 命令生成的打包 shell 脚本文件(如本文第一个例子中的 tar.sh ),找到空
目录的对应位置,在该目录后面加入你刚才创建的空文件。这样,你打包的文件中包含
了一个空文件,但正好解决了空目录打包的问题。
二、关于多组件打包过程中的卸载脚本的编写问题:
由于卸载脚本是在你卸载的过程中根据你选择的包文件触发执行的,那么你除了在
相应的组件中包含你的卸载命令外,你还必须在你的整个包的最前沿部分加入卸载说有
的文件的卸载脚本。
![nixsky[www.nixsky.com]](/templets/images/toplogo.gif)

