Microsystems,Inc.4150NetworkCircleSantaClara,CA95054U.S.A.
文件号码820–5500–122009年4月
版权所有2009SunMicrosystems,Inc.4150NetworkCircle,SantaClara,CA95054U.S.A.保留所有权利。
对于本文档中介绍的产品,SunMicrosystems,Inc.对其所涉及的技术拥有相关的知识产权。
需特别指出的是(但不局限于此),这些知识产权可能包含一项或多项美国专利,或在美国和其他国家/地区申请的待批专利。
美国政府权利-商业软件。
政府用户应遵循SunMicrosystems,Inc.的标准许可协议,以及FAR(FederalAcquisitionRegulations,即“联邦政府采购法规”)的适用条款及其补充条款。
本发行版可能包含由第三方开发的内容。
本产品的某些部分可能是从BerkeleyBSD系统衍生出来的,并获得了加利福尼亚大学的许可。
UNIX是X/OpenCompany,Ltd.在美国和其他国家/地区独家许可的注册商标。
Sun、SunMicrosystems、Sun徽标、Solaris徽标、Java咖啡杯徽标、、SunOS、JumpStart、Java和Solaris是SunMicrosystems,Inc.或其子公司在美国和其他国家/地区的商标或注册商标。
所有SPARC商标的使用均已获得许可,它们是SPARCInternational,Inc.在美国和其他国家/地区的商标或注册商标。
标有SPARC商标的产品均基于由SunMicrosystems,Inc.开发的体系结构。
OPENLOOK和SunTM图形用户界面是SunMicrosystems,Inc.为其用户和许可证持有者开发的。
Sun感谢Xerox在研究和开发可视或图形用户界面的概念方面为计算机行业所做的开拓性贡献。
Sun已从Xerox获得了对Xerox图形用户界面的非独占性许可证,该许可证还适用于实现OPENLOOKGUI和在其他方面遵守Sun书面许可协议的Sun许可证持有者。
本出版物所介绍的产品以及所包含的信息受美国出口控制法制约,并应遵守其他国家/地区的进出口法律。
严禁将本产品直接或间接地用于核设施、导弹、生化武器或海上核设施,也不能直接或间接地出口给核设施、导弹、生化武器或海上核设施的最终用户。
严禁出口或转口到美国禁运的国家/地区以及美国禁止出口清单中所包含的实体,包括但不限于被禁止的个人以及特别指定的国家/地区的公民。
本文档按“原样”提供,对于所有明示或默示的条件、陈述和担保,包括对适销性、适用性或非侵权性的默示保证,均不承担任何责任,除非此免责声明的适用范围在法律上无效。
090511@22510
目录
前言..........................................................................................................................................................9
1设计软件包...........................................................................................................................................13在何处找到打包任务........................................................................................................................
13什么是软件包?.................................................................................................................................
13软件包组件..........................................................................................................................................
14必需的软件包组件.....................................................................................................................
15可选软件包组件.........................................................................................................................
15生成软件包之前的注意事项...........................................................................................................
16使软件包可远程安装.................................................................................................................
17针对客户机/服务器配置进行优化.........................................................................................17根据功能边界打包.....................................................................................................................
17根据版税边界打包.....................................................................................................................
17根据系统相关性打包.................................................................................................................
17消除软件包中的重叠.................................................................................................................
18根据本地化边界打包.................................................................................................................
18映像包管理系统(ImagePackagingSystem,IPS)软件包............................................................18打包命令、文件和脚本....................................................................................................................
19 2生成软件包...........................................................................................................................................21软件包生成过程(任务图)...........................................................................................................
21软件包环境变量.................................................................................................................................
22关于使用环境变量的一般规则...............................................................................................
22软件包环境变量汇总.................................................................................................................
23创建pkginfo文件..............................................................................................................................
23定义软件包实例.........................................................................................................................
24定义软件包名称(NAME).............................................................................................................
25
3
目录
定义软件包类别(CATEGORY).....................................................................................................
26▼如何创建pkginfo文件.............................................................................................................
26组织软件包的内容............................................................................................................................
27▼如何组织软件包的内容............................................................................................................
27创建prototype文件.........................................................................................................................
28 prototype文件的格式..............................................................................................................
28从头创建prototype文件.........................................................................................................
33示例-使用pkgproto命令创建prototype文件.................................................................33优化使用pkgproto命令创建的prototype文件.................................................................34向prototype文件添加功能.....................................................................................................36▼如何使用pkgproto命令创建prototype文件.....................................................................38生成软件包..........................................................................................................................................
40使用最简单的pkgmk命令.........................................................................................................
40pkgmap文件..................................................................................................................................
40▼如何生成软件包.........................................................................................................................
41 3增强软件包的功能(任务)............................................................................................................45创建信息文件和安装脚本(任务图).........................................................................................45创建信息文件.....................................................................................................................................
46定义软件包相关性.....................................................................................................................
46▼如何定义软件包相关性............................................................................................................
47编写版权信息..............................................................................................................................
49▼如何编写版权信息.....................................................................................................................
49在目标系统上保留额外空间...................................................................................................
50▼如何在目标系统上保留额外空间...........................................................................................
51创建安装脚本.....................................................................................................................................
52软件包安装期间的脚本处理...................................................................................................
52软件包删除期间的脚本处理...................................................................................................
53对脚本可用的软件包环境变量...............................................................................................
53为脚本获取软件包信息............................................................................................................
55脚本的退出代码.........................................................................................................................
55编写request脚本......................................................................................................................
56▼如何编写request脚本.............................................................................................................
57使用checkinstall脚本收集文件系统数据........................................................................58▼如何收集文件系统数据............................................................................................................
59
4
应用程序包开发者指南•2009年4月
目录
编写过程脚本..............................................................................................................................
60▼如何编写过程脚本.....................................................................................................................
61 编写类操作脚本.........................................................................................................................
62▼如何编写类操作脚本.................................................................................................................
68创建带签名的软件包........................................................................................................................
69 带签名的软件包.........................................................................................................................
69证书管理......................................................................................................................................
70创建带签名的软件包.................................................................................................................
72▼如何创建不带签名的目录格式的软件包.............................................................................72▼如何将证书导入到软件包密钥库...........................................................................................
73▼如何对软件包签名.....................................................................................................................
74 4验证和转换软件包.............................................................................................................................77验证和转换软件包(任务图)......................................................................................................
77安装软件包..........................................................................................................................................
78安装软件数据库.........................................................................................................................
78与pkgadd命令交互....................................................................................................................
78在同构环境中的独立系统或服务器上安装软件包............................................................79▼如何在独立系统或服务器上安装软件包.............................................................................79验证软件包的完整性........................................................................................................................
80▼如何验证软件包的完整性........................................................................................................
80显示有关已安装的软件包的附加信息.........................................................................................81pkgparam命令..............................................................................................................................
81▼如何使用pkgparam命令获取信息..........................................................................................82pkginfo命令................................................................................................................................
83▼如何使用pkginfo命令获取信息............................................................................................86删除软件包..........................................................................................................................................
86▼如何删除软件包.........................................................................................................................
86将软件包转换为分发介质...............................................................................................................
87▼如何将软件包转换为分发介质...............................................................................................
87 5软件包创建案例研究.........................................................................................................................89请求来自管理员的输入....................................................................................................................
89技术...............................................................................................................................................
89方法...............................................................................................................................................
90
5
目录
案例研究文件..............................................................................................................................
91在安装时创建文件并在删除期间保存文件................................................................................92 技术...............................................................................................................................................
92方法...............................................................................................................................................
93案例研究文件..............................................................................................................................
94定义软件包兼容性和相关性...........................................................................................................
95技术...............................................................................................................................................
95方法...............................................................................................................................................
96案例研究文件..............................................................................................................................
96使用标准类和类操作脚本修改文件..............................................................................................
97技术...............................................................................................................................................
97方法...............................................................................................................................................
97案例研究文件..............................................................................................................................
98使用sed类和postinstall脚本修改文件.................................................................................100技术.............................................................................................................................................
100方法.............................................................................................................................................
100案例研究文件............................................................................................................................
101使用build类修改文件...................................................................................................................
102技术.............................................................................................................................................
102方法.............................................................................................................................................
102案例研究文件............................................................................................................................
103在安装期间修改crontab文件......................................................................................................
103技术.............................................................................................................................................
103方法.............................................................................................................................................
104案例研究文件............................................................................................................................
104使用过程脚本安装和删除驱动程序............................................................................................
106技术.............................................................................................................................................
106方法.............................................................................................................................................
106案例研究文件............................................................................................................................
107使用sed类和过程脚本安装驱动程序........................................................................................109技术.............................................................................................................................................
109方法.............................................................................................................................................
109案例研究文件............................................................................................................................
110
6
应用程序包开发者指南•2009年4月
目录
6创建软件包的高级技术..................................................................................................................
115指定基目录........................................................................................................................................
115缺省管理文件............................................................................................................................
115使用BASEDIR参数....................................................................................................................
117使用参数化基目录...................................................................................................................
117管理基目录................................................................................................................................
119适应重定位........................................................................................................................................
119遍历基目录................................................................................................................................
120在异构环境中支持重定位.............................................................................................................
127传统方法....................................................................................................................................
128超越传统....................................................................................................................................
131使软件包可远程安装......................................................................................................................
136示例-安装到客户机系统......................................................................................................
136示例-安装到服务器或独立系统.........................................................................................137示例-挂载共享文件系统......................................................................................................
137修补软件包........................................................................................................................................
138checkinstall脚本...................................................................................................................
139preinstall脚本.......................................................................................................................
143类操作脚本................................................................................................................................
148postinstall脚本.....................................................................................................................
153patch_checkinstall脚本......................................................................................................
158patch_postinstall脚本.........................................................................................................
160升级软件包........................................................................................................................................
161request脚本..............................................................................................................................
162postinstall脚本.....................................................................................................................
163创建类归档软件包..........................................................................................................................
163归档软件包目录的结构..........................................................................................................
164支持类归档软件包的关键字.................................................................................................
165faspac实用程序.......................................................................................................................
166 词汇表................................................................................................................................................
169 索引.....................................................................................................................................................