应用程序包开发者指南

创建信息文件

此节讨论可选软件包信息文件。使用这些文件,您可以定义软件包相关性,提供版权信息,以及在目标系统上保留额外空间。

定义软件包相关性

您需要确定您的软件包是否依赖于其他软件包,以及是否有任何其他软件包依赖于您的软件包。可使用以下两个可选软件包信息文件定义软件包相关性和不兼容性:compver depend

通过提供 compver 文件,您可以指定与正在安装的软件包兼容的以前软件包版本。

通过提供 depend 文件,您可以定义与您的软件包相关联的三种相关性类型。这些相关性类型如下所示:

depend 文件只解析最基本的相关性。如果您的软件包依赖于一个特定文件、其内容或者其行为,则 depend 文件不能提供足够的精确度。在这种情况下,应该使用 request 脚本或 checkinstall 脚本进行详细的相关性检查。checkinstall 脚本也是唯一能够完全停止软件包安装过程的脚本。


注 –

请确认 dependcompver 文件在 prototype 文件中有对应条目。文件类型应该是 i(表示软件包信息文件)。


有关更多信息,请参阅 depend(4)compver(4) 手册页。

Procedure如何定义软件包相关性

  1. 将包含信息文件的目录设置为当前工作目录。

  2. 如果存在您软件包的以前版本,并且您需要指定新软件包与其兼容,请使用您喜爱的文本编辑器创建名为 compver 的文件。

    列出与您的软件包兼容的版本。使用以下格式:


    string string . . .
    

    对于每个兼容软件包,string 值与在 pkginfo 文件中指定给 VERSION 参数的值完全相同。

  3. 保存所做更改,然后退出编辑器。

  4. 如果您的软件包依赖于其他软件包的存在、其他软件包依赖于您的软件包的存在,或者您的软件包与另一个软件包不兼容,请使用您喜爱的文本编辑器创建名为 depend 的文件。

    为每种相关性添加一个条目。使用以下格式:


    type pkg-abbrev pkg-name
        (arch) version
        (arch) version . . .
    
    type

    定义相关性类型。必须为以下字符之一: P(先决软件包)、I(不兼容软件包)或 R(反向相关性)。

    pkg-abbrev

    指定软件包缩写,例如 SUNWcadap

    pkg-name

    指定软件包全名,例如 Chip designers need CAD application software to design abc chips. Runs only on xyz hardware and is installed in the usr partition.

    (arch)

    可选。指定运行软件包的硬件类型。例如,sparcx86。如果您指定体系结构,必须使用括号作为分界符。

    version

    可选。指定 pkginfo 文件中为 VERSION 参数所赋的值。

    有关更多信息,请参见 depend(4)

  5. 保存所做更改,然后退出编辑器。

  6. 完成以下任务之一

  7. 生成您的软件包。

    如果需要,请参见如何生成软件包


示例 3–1 compver 文件

在此示例中,有四个软件包版本: 1.0、1.1、2.0 和新软件包 3.0。新软件包与所有三个以前版本兼容。最新版本的 compver 文件可能如下所示:


release 3.0
release 2.0
version 1.1
1.0

这些条目不必按版本大小顺次排序。但是,它们应与每个软件包的 pkginfo 文件中 VERSION 参数的定义完全匹配。在此示例中,软件包设计人员对于前三个版本使用了不同的格式。



示例 3–2 depend 文件

此示例假定样例软件包 SUNWcadap 要求 SUNWcsrSUNWcsu 软件包已经安装在目标系统上。SUNWcadapdepend 文件如下所示:


P SUNWcsr Core Solaris, (Root)
P SUNWcsu Core Solaris, (Usr)

另请参见

在生成软件包之后,请安装该软件包以确认它已正确安装并验证其完整性。第 4 章介绍了这些任务,并提供了有关如何将经过验证的软件包转换为分发介质的逐步说明。

编写版权信息

您需要确定软件包是否应该在安装时显示版权信息。如果是,请创建 copyright 文件。


注 –

应该包括 copyright 文件,以便为您的软件应用程序提供法律保护。请与您公司的法律部门协商,以确定版权信息的准确措词。


要提供版权信息,必须创建名为 copyright 的文件。在安装期间,信息将完全按照文件中的形式显示(无格式设置)。有关更多信息,请参见 copyright(4) 手册页。


注 –

请确认 copyright 文件在 prototype 文件中有对应条目。文件类型应该是 i(表示软件包信息文件)。


Procedure如何编写版权信息

  1. 将包含信息文件的目录设置为当前工作目录。

  2. 使用您喜爱的文本编辑器创建名为 copyright 的文件。

    根据您希望在安装软件包时显示的信息键入版权信息的文本。

  3. 保存所做更改,然后退出编辑器。

  4. 完成以下任务之一

  5. 生成您的软件包。

    如果需要,请参见如何生成软件包


示例 3–3 copyright 文件

例如,部分版权信息可能如下所示:


Copyright (c) 2003 Company Name
All Rights Reserved
 
This product is protected by copyright and distributed under
licenses restricting copying, distribution, and decompilation.

另请参见

在生成软件包之后,请安装该软件包以确认它已正确安装并验证其完整性。第 4 章介绍了这些任务,并提供了有关如何将经过验证的软件包转换为分发介质的逐步说明。

在目标系统上保留额外空间

您需要确定软件包在目标系统上是否需要额外磁盘空间。此空间是除软件包对象所需空间之外的空间。如果是,请创建 space 信息文件。此任务不同于在安装时创建空文件和目录,如定义要在安装时创建的其他对象所述。

pkgadd 命令可根据 pkgmap 文件中的对象定义确保有安装软件包所需的足够磁盘空间。但是,除了 pkgmap 文件中定义的对象所需的磁盘空间之外,软件包还可能需要更多空间。例如,软件包可能在安装后创建一个文件,该文件中可能包含数据库、日志文件,或者某个不断占用更多磁盘空间的文件。为了保证为软件包保留了空间,您应该引入一个指定磁盘空间需求的 space 文件。pkgadd 命令可检查在 space 文件中指定的额外空间。有关更多信息,请参阅 space(4) 手册页。


注 –

请确认 space 文件在 prototype 文件中有对应条目。文件类型应该是 i(表示软件包信息文件)。


Procedure如何在目标系统上保留额外空间

  1. 将包含信息文件的目录指定为当前工作目录。

  2. 使用您喜爱的文本编辑器创建名为 space 的文件。

    指定软件包所需的所有额外磁盘空间需求。使用以下格式:


    pathname blocks inodes
    
    pathname

    指定目录名,该目录可能是也可能不是文件系统的挂载点。

    blocks

    指定您希望保留的 512 字节块的数目。

    inodes

    指定所需的 inode 的数目。

    有关更多信息,请参见 space(4) 手册页。

  3. 保存所做更改,然后退出编辑器。

  4. 完成以下任务之一。

  5. 生成您的软件包。

    如果需要,请参见如何生成软件包


示例 3–4 space 文件

以下 space 示例文件指定了将在目标系统的 /opt 目录中保留 1000 个 512 字节块和 1 个 inode。


/opt   1000   1

另请参见

在生成软件包之后,请安装该软件包以确认它已正确安装并验证其完整性。第 4 章介绍了这些任务,并提供了有关如何将经过验证的软件包转换为分发介质的逐步说明。