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.  创建软件包的高级技术

词汇表

索引

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

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

技术

此案例研究展示以下技术:

方法

要使用 sed 类在安装时修改 /etc/inittab,您必须完成以下任务:

这种在安装期间编辑 /etc/inittab 的方法有一个缺点:虽然只是为了执行 init q 命令也必须提供一个完整的脚本(postinstall 脚本)。

案例研究文件

pkginfo 文件

PKG=case4
NAME=Case Study #4
CATEGORY=applications
BASEDIR=/opt
ARCH=SPARC
VERSION=Version 1d05
CLASSES=sed

prototype 文件

i pkginfo
i postinstall
e sed /etc/inittab ? ? ?

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

!remove
# remove all entries from the table that are associated
# with this package, though not necessarily just
# with this package instance
/^[^:]*:[^:]*:[^:]*:[^#]*#ROBOT$/d
!install
# remove any previous entry added to the table
# for this particular change
/^[^:]*:[^:]*:[^:]*:[^#]*#ROBOT$/d
# add the needed entry at the end of the table;
# sed(1) does not properly interpret the '$a'
# construct if you previously deleted the last
# line, so the command
# $a\
# rb:023456:wait:/usr/robot/bin/setup #ROBOT
# will not work here if the file already contained
# the modification. Instead, you will settle for
# inserting the entry before the last line!
$i\
rb:023456:wait:/usr/robot/bin/setup #ROBOT

postinstall 脚本

# make init re-read inittab
/sbin/init q ||
exit 2
exit 0