JavaScript is required to for searching.
跳过导航链接
退出打印视图
应用程序包开发者指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  设计软件包

2.  生成软件包

3.  增强软件包的功能(任务)

4.  验证和转换软件包

5.  软件包创建案例研究

请求来自管理员的输入

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

request 脚本

在安装时创建文件并在删除期间保存文件

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

space 文件

i.admin 类操作脚本

r.cfgdata 删除脚本

定义软件包兼容性和相关性

技术

方法

案例研究文件

pkginfo 文件

copyright 文件

compver 文件

depend 文件

使用标准类和类操作脚本修改文件

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

i.inittab 安装类操作脚本

r.inittab 删除类操作脚本

inittab 文件

使用 sed 类和 postinstall 脚本修改文件

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

sed 类操作脚本 (/etc/inittab)

postinstall 脚本

使用 build 类修改文件

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

生成文件

在安装期间修改 crontab 文件

技术

方法

案例研究文件

pkginfo 命令

prototype 文件

i.cron 安装类操作脚本

r.cron 删除类操作脚本

crontab 文件 #1

crontab 文件 #2

使用过程脚本安装和删除驱动程序

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

request 脚本

postinstall 脚本

preremove 脚本

使用 sed 类和过程脚本安装驱动程序

技术

方法

案例研究文件

pkginfo 文件

prototype 文件

sed 类操作脚本 (/etc/devlink.tab)

postinstall 安装脚本

preremove 删除脚本

copyright 文件

6.  创建软件包的高级技术

词汇表

索引

使用 build 类修改文件

此案例研究在软件包安装期间修改安装计算机上存在的一个文件。它使用三种修改方法之一。另外两种方法将在使用标准类和类操作脚本修改文件使用 sed 类和 postinstall 脚本修改文件中进行介绍。修改的文件是 /etc/inittab

技术

此案例研究展示如何使用 build 类。有关 build 类的更多信息,请参见build 类脚本

方法

这种修改 /etc/inittab 的方法使用 build 类。build 类脚本作为 shell 脚本执行,其输出成为正在执行的文件的新版本。换句话说,与该软件包一起提供的 /etc/inittab 数据文件将会执行,执行后的输出将成为 /etc/inittab

build 类脚本在软件包安装和删除期间执行。如果该文件在安装时执行,参数 install 会传递给该文件。请注意在 build 样例类脚本中,安装操作通过测试此参数来定义。

要使用 build 类编辑 /etc/inittab,您必须完成以下任务:

该解决方案解决了在使用标准类和类操作脚本修改文件使用 sed 类和 postinstall 脚本修改文件的案例研究中描述的缺点。只需要一个很短的文件(除 pkginfo prototype 文件之外)。因为使用了 PKGINST 参数,所以该文件适用于软件包的多个实例,而且由于 init q 命令可从 build 类脚本中执行,因此不需要 postinstall 脚本。

案例研究文件

pkginfo 文件

PKG=case6
NAME=Case Study #6
CATEGORY=applications
BASEDIR=/opt
ARCH=SPARC
VERSION=Version 1d05
CLASSES=build

prototype 文件

i pkginfo
e build /etc/inittab ? ? ?

生成文件

# PKGINST parameter provided by installation service
# remove all entries from the existing table that
# are associated with this PKGINST
sed -e "/^[^:]*:[^:]*:[^:]*:[^#]*#$PKGINST$/d" /etc/inittab ||
exit 2
if [ "$1" = install ]
then
# add the following entry to the table
echo "rb:023456:wait:/usr/robot/bin/setup #$PKGINST" ||
exit 2
fi
/sbin/init q ||
exit 2
exit 0