应用程序包开发者指南

示例 -复合软件包

以下是复合软件包的 pkginfopkgmap 文件的示例。

pkginfo 文件

PKG=SUNWstuf
NAME=software stuff 
ARCH=sparc
VERSION=1.0.0,REV=1.0.5
CATEGORY=application
DESC=a set of utilities that do stuff
BASEDIR=/opt
VENDOR=Sun Microsystems, Inc.
HOTLINE=Please contact your local service provider
EMAIL=
MAXINST=1000
CLASSES=none daemon
PSTAMP=hubert990707141632

pkgmap 文件

: 1 1758
1 d none SUNWstuf/EZstuf 0775 root bin
1 f none SUNWstuf/EZstuf/dirdel 0555 bin bin 40 773 751310229
1 f none SUNWstuf/EZstuf/usrdel 0555 bin bin 40 773 751310229
1 f none SUNWstuf/EZstuf/filedel 0555 bin bin 40 773 751310229
1 d none SUNWstuf/HRDstuf 0775 root bin
1 f none SUNWstuf/HRDstuf/mksmart 0555 bin bin 40 773 751310229
1 f none SUNWstuf/HRDstuf/mktall 0555 bin bin 40 773 751310229
1 f none SUNWstuf/HRDstuf/mkcute 0555 bin bin 40 773 751310229
1 f none SUNWstuf/HRDstuf/mkeasy 0555 bin bin 40 773 751310229
1 d none /etc	? ? ?
1 d none /etc/rc2.d ? ? ?
1 e daemon /etc/rc2.d/S70dostuf 0744 root sys 450 223443
1 i i.daemon 509 39560 752978103
1 i pkginfo 348 28411 760740163
1 i postinstall 323 26475 751309908
1 i postremove 402 33179 751309945
1 i preinstall 321 26254 751310019
1 i preremove 320 26114 751309865
1 i r.daemon 320 24573 742152591

尽管 S70dostuf 属于 daemon 类,但指向它的目录(这些目录在安装时已经就位)属于 none 类。即使这些目录对于此软件包是唯一的,您也应该将它们保留在 none 类中。这样做的原因是,这些目录需要首先被创建而且最后删除,而对于 none 类而言始终如此。pkgadd 命令创建这些目录;它们不是从软件包复制的,而且不会传递给将创建的类操作脚本。相反,这些目录由 pkgadd 命令在调用安装类操作脚本之前创建,而 pkgrm 命令会在删除类操作脚本完成之后删除这些目录。

这意味着,如果一个特殊类中的目录包含 none 类中的对象,pkgrm 命令在尝试删除该目录时会失败,因为该目录无法及时变成空目录。如果类 none 的一个对象将插入到某个特殊类的目录中,该目录不会及时出现以便接受该对象。pkgadd 命令将在对象安装期间动态创建该目录,并且可能无法在最终看到 pkgmap 定义时同步该目录的属性。


注 –

在将目录指定给类时,请一定记住创建和删除顺序。