应用程序包开发者指南

创建信息文件

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

定义软件包相关性

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

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

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

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


注 –

请确认 depend 和 compver 文件在 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)

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

    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 要求 SUNWcsr 和 SUNWcsu 软件包已经安装在目标系统上。SUNWcadap 的 depend 文件如下所示:


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 章介绍了这些任务,并提供了有关如何将经过验证的软件包转换为分发介质的逐步说明。