pkg是unix上典型的软件安装现在介绍pkg在sco和unixware上的使用 首先建立的是包的描述文件,prototype (package information file) 下面是个例子: proto # this file is example for prototype # file pkgproto .=/usr/local # s /foo/bar/etc/mount=../etc/mount !PREJECTDIR=/usr/local !BIN=$PROJECTDIR/bin !search /usr/local/bin d none /usr/local/hzh 0644 root bin i pkginfo=xixiinfo i /usr/local/xixi/version=version d none /usr/local/bin 0755 root bin !default 644 root other f src /usr/local/bin/README=src/README 0755 root bin # 是注解符号 # !开始的是个命令param=value PREJECTDIR=/usr/local # 表示设置一个环境变量PREJECTDIR # search 表示加入path的命令搜索路径 # default 表示创建文件时的属主,权限等设置 # include 包含其他proto文件 # 其他不带!的由以下的格式描述 part ftype class pathname [major minor] [mode owner group] part 部分描述,一个软件包可以分几个部分 例如 1 driver 2 develop env 该域可以省略,省略时为1 ftype 文件的描述 b 块设备文件 c 字符设备文件 d 目录 f 标准的文件 i 安装信息文件 # 两个重要的文件是版本 version和包描述文件pkginfo(注意pkginfo是关键字,而 # 等号右边的是info文件名,在稍后将会介绍该文件的使用方法. # depend action request可以不要,request 是你在安装包前执行的文件 # 在request中可以加入一些临时要出入的信息(例如客户资料) i pkginfo=xixiinfo i version=version i depend=depend l 连接文件 p 命名管道 s 符号连接 class 描述文件的所属 例如 src exec... pathname 所在的路径 如果是符号连接则会有路径2 例如:s /foo/bar/etc/mount=../etc/mount major minor 是设备文件的主辅助号 mode owner group 是创建时的权限 用户和群组
你所有的包中的文件啦目录啦都要用上述方法创建 当然有个快速建立该文件的方法 使用pkgproto .=/usr/local 其中.表示你源文件的目录路径 /usr/local为你要安装的路径
pkginfo 文件是描述该包的显示信息,版本信息等 以下是一个pkginfo 的例子:注意我使用hzhinfo是为了与proto文件中的pkginfo 相对应 ARCH=i386 硬件信息 PSTAMP="yymmddhhmm" #出品时间 PKG="包名" NAME="包的说明" VERSION="3" #版本 VENDOR="卖主信息" HOTLINE="热线" EMAIL="email" VSTOCK="0122c3f5566" CATEGORY="system.run" ISTATES="S 2" RSTATES="S 2" 除此之外还可以定义 BASEDIR=标准路径 CATEGORY=类别 CLASSES=级别 DESC=包描述信息 MAXINST=最多安装多少个包 ...
好准备好以上几个文件后就可以制作包了 首先产生包 pkgmk -o -d /tmp -f proto 其中 -o 表示覆盖已有的包 -d 路径或设备(/def/fd0) -f proto的文件名 如果出现## Packaging complete.表示包顺利建成 你现在可以使用pkgadd -d /tmp来试着安装了
当安装成功可以正式发行时你可以使用 pkgtrans /tmp /tmp/xixi.pkg all 将/tmp 下的包创建为xixi.pkg 以后你就可以将xixi.pkg 带走在其他的机器上顺利的安装.

|