为安装封装软件

为安装封装软件

本主题提供了有关使用 installp 命令来准备要安装的应用程序的信息。

此部分描述了必须由产品开发商提供的软件产品安装软件包的格式和内容。 其中描述了那些作为软件安装或更新软件包一部分的必需文件和可选文件。

软件产品安装软件包是一个备份格式的文件,包含软件产品的文件、必需的安装控制文件以及可选的安装定制文件。 installp命令用于安装和更新软件产品。

安装软件包中包含了一个或多个可单独安装的逻辑分组单位,称为文件集。 软件包中的每个文件集必须属于同一个产品。

文件集更新或更新软件包是一个包含了对现有文件集所作的修改的软件包。

在本主题中,术语标准系统用于表示一种未配置为无盘系统的系统。

安装过程要求

安装无需用户干预。 需要用户干预的产品配置一定出现在安装之前或之后。

所有独立文件集和独立文件夹更新的安装都必须能在一次安装过程中执行。

安装无需重新启动系统。 安装将停止与该安装相关的系统部分,在安装后需要重新启动系统,以使安装完全生效。

软件包控制信息要求

软件包控制信息必须:

指定文件集对其他文件集的所有安装需求。

针对文件集安装指定所有的文件系统大小需求。

软件包的格式

安装包或更新包必须是备份格式的单一文件,可在安装过程中通过installp命令还原。 该文件可分发到磁带、软盘或 CD-ROM 上。

软件包分区要求

为了支持无盘或无数据客户机工作站,软件包中特定于机器的部分(root 部分)必须独立于软件包中机器可共享的部分(usr 部分)。 软件包的 usr 部分包含 "/usr或 "/opt文件系统中的文件。

软件包 root 部分的安装不得修改 /usr 文件系统中的任何文件。 安装无盘或无数据客户机系统的 root 部分期间,/usr 文件系统是不可写的。 机器专用(根)部分应包括不在 "/usr或 "/opt文件系统中的所有内容。

工作负载分区的包装

为工作负载分区 (WPAR) 进行封装时,有些软件产品需要注意一些特殊事项。 要将软件产品成功地部署在 WPAR 中,必须对软件产品进行封装,以免在处理 root 部分期间软件产品试图写入 /usr 或 /opt 文件系统,因为 WPAR 可能以只读方式安装了这些文件系统。 类似地,要在安装了产品的每个系统中执行的任何配置都必须从软件包的 root 部分执行。

如果未曾打算将文件集安装至工作负载分区,那么必须使用软件包的 lpp_name 文件中的 PRIVATE 属性来指定该文件集。

如果在 WPAR 中安装文件集时需要进行不同的配置,那么封装脚本检查 INUWPAR 环境变量来确定是否正在 WPAR 中安装该文件集。

如果安装至 WPAR 时文件集进行了不同的配置,那么从系统副本创建 WPAR 时将需要重新配置该文件集,因为最初未将该文件集安装至 WPAR。 文件集所有者可以在 /usr/lib/wpars/wparconvert.d/usr 和 /usr/lib/wpars/wparconvert.d/root 目录中创建程序,然后在将 usr 和 root 部分从其文件集转换成要在系统副本 WPAR 中运行的文件集时运行这些程序。 首次启动系统副本 WPAR 时,这些目录中的所有可执行文件都将以字母顺序(C 语言环境)执行。

软件重要产品数据

“软件重要产品数据 (SWVPD)”数据库中保存了有关软件产品及其可安装选件的信息。 SWVPD 由一组命令和多个“对象数据管理器 (ODM)”对象类组成,用于维护软件产品信息。 SWVPD 命令供用户查询(lslpp)和验证(lppchk)已安装的软件产品。 ODM 对象类定义维护的软件产品信息的作用域和格式。

installp命令使用对象数据管理器在 SWVPD 数据库中维护以下信息:

软件产品的名称(例如,bos.adt)

软件产品的版本

软件产品的发行版级别,它表示对该软件产品的外部编程接口的更改

软件产品的修改级别,它表示对该软件产品的外部接口没有影响的更改

软件产品的修订级别,它表示将在以后构建到常规修改级别中的一些小的更新

文件的名称、校验和以及大小(这些文件构成软件产品或选件)

软件产品的状态:可用、应用中、已应用、落实中、已落实、拒绝或中断

技术级别和 APAR 信息

非 installp 封装软件的目标目录和安装程序(如适用的话)。

软件产品封装部件

为了支持在客户机/服务器环境中进行安装,安装软件包分为以下几部分:

usr

包含可在多台具有兼容硬件体系结构的机器间共享的产品部分。 对于标准系统,这些文件将存储在 /usr 或 /opt 文件树中。

root

包含不能在多台机器间共享的产品部分。 每台客户机必须拥有其自己的副本。 如果要求此软件针对每台机器有一个单独的副本,那么大多数情况下是与机器或产品的配置有关。 对于标准系统,root 部分中的文件存储在根 (/) 文件树中。 文件集的 root 部分必须与该文件集的 usr 部分在同一软件包中。 如果文件集包含了 root 部分,那么它还必须包含 usr 部分。

软件包分区的样本文件系统指南

以下是对文件系统和目录的简要描述。 您可以将此用作将产品软件包分割为 root 部分、usr 部分和共享部分的指南。

以下是 root 部分的目录及其内容:

/dev

本地机器设备文件

/etc

机器配置文件,例如 hosts 和 passwd

/sbin

引导系统所需的系统实用程序

/var

特定于系统的数据文件和日志文件

下面是 usr 部分的目录及其内容:

/usr/bin

命令和脚本(普通的可执行文件)

/usr/sbin

系统管理命令

/usr/include

包含文件

/usr/lib

库、非用户命令以及与层次结构相关的数据

/opt

库、非用户命令以及一般与非操作系统产品关联的脚本。

软件包和文件集命名约定

在命名软件包及其文件集时,请使用以下约定:

软件包的名称 (PackageName) 应以产品名称开头。 如果软件包只有一个可安装的文件集,那么该文件集的名称可以与 PackageName 相同。 所有的软件包名称必须是唯一的。

文件集名称的形式如下:ProductName.PackageName.FilesetName.extension其中:

ProductName 确定产品或解决方案组。

PackageName 确定产品中的功能组。

FilesetName(可选)确定要安装的文件和库的特定功能集。

Extension(可选)进一步描述了内容。

一个文件集名称包含了多个字符,且以字母开头。

文件集名称中的全部字符必须都是 ASCII 字符。 有效的字符为大写和小写字母、数字、下划线 (_)、加号 (+) 和减号。 句号 (.) 在文件集名称中用作分隔符。

文件集的名称不能以句号或点号结尾。

文件集名称的最大长度为 144 个字节。

软件包中所有的文件集名称均必须是唯一的。

表 1. 文件集扩展名命名约定

扩展名

文件集描述

.adt

应用程序开发工具箱

.com

一些类似文件集所需的共用代码

.兼容

在将来的发行版中可能除去的兼容性代码

.diag

诊断支持

.fnt

字体

.help. 语言

特定语言的“公共桌面环境 (CDE)”帮助文件

设备驱动程序封装的特殊命名注意事项

配置管理器命令 (cfgmgr) 会为安装介质上用以下命名约定封装的可检测设备自动安装软件支持。devices.BusTypeID.CardID.Extension其中:

BusTypeID 指定了卡所连接的总线类型(例如,pci 代表 PCI 总线)

CardID 指定了与卡类型关联的唯一十六进制标识

Extension 指定了包含的驱动程序的部分(例如,rte 可能是运行时的扩展,diag 是诊断的扩展。)

例如,假设以太网设备连接到 PCI 总线,并被配置管理器识别为具有唯一的卡标识符,即1410bb02.与此以太网设备相关的文件集包名为devices.pci.1410bb02。 此软件包中的运行时环境文件集可命名为 devices.pci.1410bb02.rte。

消息目录封装的特殊命名注意事项

安装软件包的用户可以请求自动安装消息目录。 在该请求发出之后,如果安装介质上有消息文件集,并且是按以下命名约定封装的,那么系统将自动安装主语言的消息文件集:Product.msg.Language.SubProduct

可选的 .SubProduct 后缀在产品具有同一语言的多个消息目录文件集的情况下使用,每个消息目录文件集应用于一个不同的 SubProduct。 您可以选择对整个产品使用一个消息文件集。

例如Super_Widget产品具有plastic和一个metal文件集选项集。 全部Super_Widget美国英语的报文目录可以打包成一个文件集,文件名为Super_Widget.msg.en_US.如果需要单独的报文目录文件集用于plastic和metal选项,英文美国邮件目录文件集将命名为Super_Widget.msg.en_US.plastic和Super_Widget.msg.en_US.metal.

注意:符合此命名约定的信息文件集必须包含产品中另一个文件集的安装前提(instreq),以确保信息文件集的自动安装。

文件名

随软件包提供的文件的名称中不得包含逗号或冒号。 逗号和冒号用作软件安装过程中所使用的控制文件中的定界符。 文件名中可以包含非 ASCII 字符。 文件名的全路径不得超过 128 个字符。

文件集修订级别标识

文件集级别表示为级别、v.r.m.f 或 VRMF,其形式为:Version.Release.Modification.FixLevel其中:

Version 是一个 1 到 2 位的数字字段,标识了版本号。

Release 是一个 1 到 2 位的数字字段,标识了发行版号。

Modification 是一个 1 到 4 位的数字字段,它标识了修改级别。

FixLevel 是一个 1 到 4 位的数字字段,它标识了修订级别。

基础文件集安装级别是文件集的完整初始安装级别。 该级别包含文件集中的全部文件,而文件集更新可能仅包含完整文件集的一部分文件。

软件包中的所有文件集应具有相同的文件集级别,但AIX® 4.1软件包不需要。

对于文件集的所有新级别,文件集的级别肯定会增加。 installp 命令使用文件集级别在后来的安装中检查产品的较新级别。

文件集级别的优先级从左到右读取(例如:......)、5.2.0.0比4.3.0.0).

软件包的内容

此部分描述了包含在安装软件包或更新软件包中的文件。 文件路径名是针对安装软件包的类型而给出的。 对于更新软件包,作为路径名一部分的 PackageName 将被 PackageName/FilesetName/FilesetLevel 所替换。

安装或更新软件包的 usr 部分包含了以下安装控制文件:

./lpp_name:该文件提供了有关要安装或更新的软件包的信息。 出于性能的考虑,lpp_name 文件应作为构成软件安装包的备份格式文件中的首个文件。

./usr/lpp/PackageName/liblpp.a

:该归档文件中包含了由安装进程用于安装或更新软件包 usr 部分的控制文件。

相对于根备份的所有文件,它们是要恢复以用于安装或更新软件产品 usr 部分的文件。

如果安装或更新软件包包含 root 部分,那么 root 部分包含以下文件:

./usr/lpp/PackageName/inst_root/liblpp.a

:该库文件中包含了安装进程用于安装或更新软件包 root 部分的控制文件。

要恢复以用于安装或更新软件包 root 部分的所有文件。 对于基本文件集安装级别,这些文件必须相对于 ./usr/lpp/PackageName/inst_root 备份。

软件包的示例内容

该farm.apps软件包包含farm.apps.hog 4.1.0.0文件集。 该farm.apps.hog 4.1.0.0文件集提供以下文件/usr/bin/raisehog (in the usr part of the package)

/usr/sbin/sellhog

(in the usr part of the package)

/etc/hog

(in the root part of the package)

该farm.apps软件包至少包含以下文件./lpp_name

./usr/lpp/farm.apps/liblpp.a

./usr/lpp/farm.apps/inst_root/liblpp.a

./usr/bin/raisehog

./usr/sbin/sellhog

./usr/lpp/farm.apps/inst_root/etc/hog

文件集更新farm.apps.hog 4.1.0.3提供以下文件的更新/usr/sbin/sellhog

/etc/hog

文件集更新软件包中包含了以下文件:./lpp_name

./usr/lpp/farm.apps/farm.apps.hog/4.1.0.3/liblpp.a

./usr/lpp/farm.apps/farm.apps.hog/4.1.0.3/inst_root/liblpp.a

./usr/sbin/sellhog

./usr/lpp/farm.apps/farm.apps.hog/4.1.0.3/inst_root/etc/hog

注意:软件包根目录下的文件已恢复到inst_root目录下。 为软件包中与机器相关的 root 部分安装的文件将恢复到 inst_root 相对目录中。 这简化了特定于机器的文件安装在多个系统的根文件系统中。 通过从 inst_root 目录复制这些 root 部分文件,它们将安装到多个系统的 root 部分中。 这样就使多台机器能够共享一个与公用机器无关的 usr 部分。

lpp_name 软件包信息文件

每个软件包中必须含有 lpp_name 软件包信息文件。 lpp_name 文件向 installp 命令提供有关软件包以及其中的每个文件集的信息。 请参阅文件集更新软件包的 lpp_name 文件示例的图。 图中的数字和箭头指的就是下表中描述的字段。

表 2。 lpp_name 文件字段

字段名

格式

分隔符

描述

1. 版本

整数

空格

表示构建该软件包的 installp 的发行版级别。 值有:

1- AIX 3.1

3- AIX 3.2

4- AIX 4.1 和更高版本

2. 平台

字符

空格

表示构建该软件包的平台。 值有:

R - RISC

I -英特尔

N - Neutral

3. 软件包类型

字符

空格

表示这是安装软件包还是更新软件包并表示它的类型。 值有:

I - 安装

S - 单个更新软件包

SR - 必需的单个更新软件包

ML - 技术级别的更新软件包

4. 软件包名称

字符

空格

软件包的名称 (PackageName)。

{

换行

表示特定于文件集的数据中可重复部分的开头。

5. 文件集名称

字符

空格

文件集的完整名称。 此字段表示文件集或文件集更新的标题信息的开始。

6. 级别

显示在“描述”列中

空格

要安装的文件集的级别。 格式为:Version.Release.Modification.FixLevel注:可使用<、 > 和=的组合语法额外定义级别。 例如, *prereq bos.rte v<5 或 *prereq bos.rte v=5

r=3。

7. 卷

整数

空格

表示文件集所在的卷号(如果是通过多卷介质提供的)。

8. Bosboot

字符

空格

表示安装后是否需要 bosboot。 值有:

N - 不启动 bosboot

b - 启动 bosboot

9. 内容

字符

空格

表示包含在文件集或文件集更新中的部分。 值有:

B - usr 和 root 部分

U - 仅 usr 部分

10. 语文

字符

空格

如果选择了 C 语言环境,那么应设为显示的语言。 一般设为 en_US。

11. 说明

字符

# 或换行

文件集描述。 描述限制在 60 个字符之内。

12. 评论

字符

换行

(可选)附加注释。

[

换行

表示文件集信息正文的开头。

13. 所需资料

表后有描述

换行

(可选)文件集对其他文件集和文件集更新的安装相关性。 请参阅此表后面的部分,以获取更详细的描述。

%

换行

表示必备条件信息和大小信息之间的分隔。

14.尺寸和许可协议信息

本主题稍后有描述

换行

目录的大小要求和许可协议信息。 请参阅本主题稍后的“大小和许可协议信息”部分,以了解更多详细描述。

%

换行

表示大小信息和许可证信息之间的分隔。

%

换行

表示许可证信息和取代信息之间的分隔。

15. 取代信息

主题稍后有描述

换行

有关该文件集替换的前一个文件集的信息。

%

换行

表示许可证信息和修订信息之间的分隔。

16. 修订信息

主题稍后有描述

换行

有关文件集更新中所包含的修订的信息。 稍后请参阅本主题的“修订信息”部分,以了解更详细描述。

]

换行

表示文件集信息正文的结尾。

}

换行

表示特定于文件集的信息中可重复部分的结尾。

表 3。 示例

1 23 4

| || | 6 7 8 9 10 11

4 RSfarm.apps { | | | | | | |

5--> farm.apps.hog04.01.0000.0003 1 N U en_US Hog Utilities

12--># ...

[

13--> *ifreq bos.farming.rte (4.2.0.0) 4.2.0.15

%

14--> /usr/sbin 48

14--> /usr/lpp/farm.apps/farm.apps.hog/4.1.0.3 280

14--> /usr/lpp/farm.apps/farm.apps.hog/inst_root/4.1.0.3.96

14--> /usr/lpp/SAVESPACE 48

14--> /lpp/SAVESPACE 32

14--> /usr/lpp/bos.hos/farm.apps.hog/inst_root/4.1.0.3/ etc 32

%

%

15--> ranch.hog 4.1.0.0

%

16--> IX51366 Hogs producing eggs.

16--> IX81360 Piglets have too many ears.

]

}

必备条件信息部分

必备条件信息部分包含有关其他文件集或文件集更新的安装相关性的信息。 必备条件部分中列示的每个必需条件必须根据必备条件规则得到满足,以便应用文件集或文件集更新。

在任何安装或更新发生之前,installp 命令会将要安装的文件集的当前状态与 lpp_name 文件中列示的需求进行比较。 如果 -g 标记是使用 installp 命令指定的,那么任何缺少的必备条件将添加到要安装的文件集的列表中。 文件集将根据所有必备条件按顺序进行安装。 就在安装文件集之前,installp 命令将再次检查该文件集的必备条件。 该检查会验证所有在安装过程中较早安装的必备条件是否已经成功地安装,以及所有的必备条件是否都已满足。

在以下对不同类型的必备条件的描述中,RequiredFilesetLevel 代表满足必备条件的最小的文件集级别。 除非由于 取代信息部分中描述的原因而显式阻止,否则文件集的较新级别满足较早级别的必要条件。 例如plum.tree 2.2.0.0文件集由plum.tree 3.1.0.0文件集。

预备条件

先决条件表示必须以指定的文件集级别或更高的级别来安装指定文件集,之后当前文件集才能成功安装。 如果要调度安装某个必备文件集,那么 installp 命令会对要安装的文件集的列表进行排序,以确保满足先决条件。 不能担保文件集的先决条件均在相同的软件包中。

语法*prereq Fileset RequiredFilesetLevel

备用语法Fileset RequiredFilesetLevel

文件集更新中包含了它的基本级别文件集的隐式先决条件。 如果该隐式先决条件不充分,那么您必须另外显式地指定一个先决条件。 更新软件包的版本和发行版与隐式先决条件的是相同的。 如果更新的FixLevel为0,隐式前提条件的ModificationLevel和FixLevel都是0.否则,隐式前提条件的ModificationLevel与更新的ModificationLevel相同,FixLevel为0.例如,4.1.3.2级更新要求在安装更新前安装其4.1.3.0级。 4.1.3.0 级别的更新软件包要求先安装 4.1.0.0 级别,然后才能安装该更新软件包。

相关必要条件

并存条件表示必须安装指定文件集,之后当前文件集才能正常运行。 在安装过程结束时,installp 命令将针对任何未满足的并存条件发出警告消息。 并存条件可用于表示同一软件包中文件集之间的必备条件。

语法*coreq Fileset RequiredFilesetLevel

如有必要

有条件的必备条件表示仅当指定文件集在 InstalledFilesetLevel 级别安装时才要求该文件集的级别为 RequiredFilesetLevel。 这在大多数情况下用于协调文件集更新之间的相关性。 以下示例说明了有条件的必备条件:*ifreq plum.tree (1.1.0.0) 1.1.2.3

语法*ifreq Fileset [(InstalledFilesetLevel)] RequiredFilesetLevel

如果指定了plum.tree文件集尚未安装,本示例不会导致其安装。 如果指定了plum.tree文件集已安装在以下任何级别,本示例不会导致1.1.2.3要安装的水平仪:

1.1.2.3

该级别匹配 RequiredFilesetLevel。

1.2.0.0

该级别是另一个基础文件集级别。

1.1.3.0

该级别取代 RequiredFilesetLevel。

如果指定了plum.tree文件集已安装在以下任何级别,此示例会导致1.1.2.3要安装的水平仪:

1.1.0.0

该级别匹配 InstalledFilesetLevel。

1.1.2.0

该级别与 InstalledFilesetLevel 具有相同的基础级别,并且比 RequiredFilesetLevel 低一个级别。

(InstalledFilesetLevel) 参数是可选的。 如果省略该参数,那么 InstalledFilesetLevel 与 RequiredFilesetLevel 的 Version 和 Release 被假定为相同。 If the FixLevel of the RequiredFilesetLevel is0,InstalledFilesetLevel的ModificationLevel和FixLevel均为0.否则,InstalledFilesetLevel的ModificationLevel与RequiredFilesetLevel的ModificationLevel相同,FixLevel为0.例如,如果RequiredFilesetLevel为4.1.1.1如果没有提供InstalledFilesetLevel参数,则InstalledFilesetLevel为4.1.1.0.如果RequiredFilesetLevel为4.1.1.0如果没有提供InstalledFilesetLevel参数,则InstalledFilesetLevel为4.1.0.0.

安装必备条件

安装必备条件表示指定的文件集应仅当其对应的文件集已安装或在要安装的文件集列表中时才自动安装。 如果用户明确要求安装一个安装必备条件,那么也要安装它。 文件集更新中不能含有安装必备条件。 因为含有特定软件包的消息文件的文件集在该软件包的一些其他部分未安装的情况下不会自动安装,所以消息文件集应始终在其产品中包含另一个文件集的安装必备条件。

语法*instreq Fileset RequiredFilesetLevel

组别必要条件

组必备条件表示多个不同的必备条件能满足必需条件。 组必备条件中可以包含先决条件、并存条件、有条件的必备条件和嵌套组必备条件。 { RequisiteExpressionList } 前的数字表示在 RequisiteExpressionList 中的多少项是必需的。 例如,>2规定RequisiteExpressionList中至少有三个项目是必需的。

语法>Number { RequisiteExpressionList }

必备条件信息部分示例

以下示例说明了并存条件的使用。 该book.create 12.30.0.0如果没有layout.text 1.1.0.0和index.generate 2.3.0.0文件集的必要部分book.create

12.30.0.0包含:

*coreq layout.text 1.1.0.0

*coreq index.generate 2.3.0.0该index.generate 3.1.0.0文件集满足index.generate必要条件,因为3.1.0.0比所需的2.3.0.0水平。

以下示例说明了另外几个常见必备条件类型的使用。 文件集new.fileset.rte 1.1.0.0包含以下必要条件*prereq database.rte 1.2.0.0

*coreq spreadsheet.rte 1.3.1.0

*ifreq wordprocessorA.rte (4.1.0.0) 4.1.1.1

*ifreq wordprocessorB.rte 4.1.1.1

该database.rte文件集必须安装在1.2.0.0或更高new.fileset.rte文件集。 如果database.rte和new.fileset.rte在同一安装会话中安装时,安装程序会安装database文件集之前new.fileset.rte文件集。

该spreadsheet.rte文件集必须安装在1.3.1.0或更高new.fileset.rte文件集才能正常运行。 该spreadsheet.rte文件集之前不需要安装new.fileset.rte文件集,前提是这两个文件集在同一安装会话中安装。 如果有足够的spreadsheet.rte如果文件集在安装过程结束时仍未安装,系统将发出警告信息,说明核心前提条件未满足。

如果指定了wordprocessorA.rte文件集已安装(或正在安装new.fileset.rte)级4.1.0.0则wordprocessorA.rte文件集更新必须安装在4.1.1.1或更高。

如果指定了wordprocessorB.rte文件集已安装(或正在安装new.fileset.rte)级4.1.1.0则wordprocessorB.rte文件集更新必须安装在4.1.1.1或更高。

下例说明了安装必备条件。 文件集Super.msg.fr_FR.Widget一级2.1.0.0包含以下安装要求:*instreq Super.Widget 2.1.0.0

该Super.msg.fr_FR.Widget文件集时,无法自动安装Super.Widget文件集未安装。 该Super.msg.fr_FR.Widget文件集时可以安装Super.Widget如果要安装的文件集列表中明确列出了该文件集,则不会安装该文件集。

以下示例说明了组必备条件。 必须至少安装一个列示的必备文件集(两个都可以安装)。 如果安装了spreadsheet_1.rte文件集的级别必须为1.2.0.0或更高或spreadsheet_2.rte文件集的级别必须为1.3.0.0或更高。>0 {

*prereq spreadsheet_1.rte 1.2.0.0

*prereq spreadsheet_2.rte 1.3.0.0

}

大小和许可协议信息

大小和许可协议信息部分包含了有关文件集的磁盘空间和许可协议需求的信息。

大小信息

这些信息供安装进程使用,以确保有足够的磁盘空间可用于成功地完成安装或更新。 大小信息的形式如下:Directory PermanentSpace [TemporarySpace]

此外,产品开发商还可以在全路径名字段中指定 PAGESPACE 或 INSTWORK,以此来指明在安装过程中对空间进行调页的磁盘空间要求和软件包目录中所需的工作空间。

目录

具有大小需求的目录的全路径名。

PermanentSpace

进行安装或更新所需的永久空间的大小(512 个字节大小的块数)。 永久空间就是安装完成后所需的空间。 该字段在下列情况下有不同的意义。

如果 Directory 为 PAGESPACE,那么 PermanentSpace 代表执行安装所需的页面空间的大小(512 个字节大小的块数)。

如果 Directory 为 INSTWORK,那么 PermanentSpace 代表在安装过程中使用的抽取控制文件所需的块数(以 512 个字节计)。 这些控制文件是将归档到文件 liblpp.a 中的文件。

TemporarySpace

仅安装所需的临时空间的大小(512 个字节大小的块数)。 临时空间在安装完成后会被释放。 TemporarySpace 值是可选的。 重新链接可执行对象文件所需的空间就是临时空间的一个例子。 将对象文件归档到库中所需的空间是另一个例子。 为了归档到库中,installp 命令将生成库的副本,然后将对象文件归档到复制的库中,再用复制的库替代原来的库。 用于存放库副本的空间被认为是临时空间。

当 Directory 为 INSTWORK 时,TemporarySpace 代表未抽取的 liblpp.a 文件所需的块数(以 512 个字节计)。

以下例子说明了大小信息部分:/usr/bin 30

/lib 40 20

PAGESPACE 10

INSTWORK 10 6

因为预测磁盘文件系统安装到文件树的方式是很困难的,所以大小信息部分中目录路径名称条目应尽可能具体。 例如,/usr/bin 和 /usr/lib 都有相应的条目比 /usr 有一个组合条目要好,因为 /usr/bin 和 /usr/lib 能够存在于均安装在 /usr 下的不同文件系统中。 一般,最好将每个目录中的条目包括到安装的文件中。

仅对于更新软件包而言,大小信息必须包括所有将移入 save 目录的旧文件(将被替换的文件) 如果稍后更新被拒绝,那么这些旧文件将会恢复。 为了表明这些大小需求,更新软件包必须指定以下几个特殊的目录:

/usr/lpp/SAVESPACE

用于存放 usr 部分文件的 save 目录。 缺省情况下,usr 部分文件保存在 /usr/lpp/PackageName/FilesetName/文件集级别.save 目录下。

/lpp/SAVESPACE

用于存放 root 部分文件的 save 目录。 缺省情况下,root 部分文件保存在 /lpp/PackageName/FilesetName/FilesetLevel.save 目录下。

许可协议信息

AIX安装程序最近增加了一项功能,允许产品所有者要求客户在安装产品前签署许可协议。 installp命令读取文件集的lpp_name文件,就像读取任何图像一样。 如果在lpp_name文件的大小部分有 "LAF或 "LAR条目,"installp命令会调用 "inulag命令,在窗口中显示许可证并记录客户接受许可证的情况。 如果客户拒绝接受许可协议,那么该产品的安装将中止。

在何处放置许可证文件

许可证文件的放置取决于产品所有者。 但是,强烈建议将许可证放在 /usr/swlag/LANG 下。 建议对许可协议文件使用 ProductName_VersionRelease.la 形式的名称。 但并不要求使用此名称或位置。 installp命令和这个包装只是提供了一种向客户提供信息的方法。 所有的工具和文件内容必须由产品提供。

许可证文件的翻译要求

如果要求将许可协议文件翻译成支持的语言,那么建议将这些文件按语言分成不同的文件。 此翻译可能要求创建多个文件。

如何提供许可证文件

产品可以将许可证文件作为其主产品的一部分来提供,或者在产品的一个单独的文件集中提供。 许多产品选择创建一个单独的文件集用于仅提供许可证文件。 这样使具有许多不同功能部件的产品能够只创建一个许可证文件和文件集,然后放在各个功能部件所需的所有介质上,而无需将这些文件包含在若干不同的功能部件中。 当前建议的文件集名称是 lpp.license 或 lpp.loc.license。 大多数产品目前均采用第一种建议。 如果您希望在标准安装中对客户隐藏许可证文件集,请使用 lpp.loc.license,由于许可证文件集无需在安装时选择。

如何封装许可证文件

该文件自身不会在文件集的 fileset.al 或 fileset.inventory 文件中列示。 installp命令会根据ProductName文件尺寸部分的条目找到许可证。 这些条目的类型是:

LAF

许可证 协议 文件告诉 "installp命令,此文件集中包含此特定许可证文件。

许可协议文件是通过一个大小部分条目指定的:LAFlicense_file size

术语

含义

LAF

代表许可 协议 文件

文件的翻译目标语言。 通常有 en_US、fr_FR、Ja_JP 和 zh_TW 条目。 如果未指定 ,那么该协议文件将视为未翻译并以 ASCII 编码。 如果许可协议文件是翻译的, 必须是路径的一部分,以便将需求条目与文件关联起来。

license_file

是指向许可证文件的全路径,以便能够在映像中找到该文件并将其放置在系统中。 建议路径采用 /usr/swlag/en_US/ProductName_VersionRelease.la 的形式。

大小

这是许可证文件以 512 字节块为单位的实际大小,以确保 "installp有足够的空间在系统中放置许可证文件。

LAR

许可证 协议 要求"告诉 "installp命令,该文件集要求安装列出的许可证协议文件。 这与先决条件有所不同,因为它在文件中而不是在文件集中。 文件和文件集具有不同的格式和用途。 不应将它们混淆。

术语

含义

LAR

代表许可 协议 要求

req_license_file

安装此文件集时需要该许可证文件的全路径。 通常情况下,这些条目在路径中使用 %L 而不是实际的语言名称,这样客户就不必查看所有的语言,而只须查看相应的文件。

一般情况下,一个文件集包含所有 "LAF条目。 产品中需要此许可证的其他文件集只提供 "LAR条目。 包含 "LAF条目的文件集也包含 BFF 映像中完整路径位置列出的文件,但文件集的fileset.al或fileset.inventory文件中没有列出这些文件。 电子许可证的设计不需要将这些文件注册到 SWVPD。 installp命令:

查找文件中的需求。

检查系统以查看它是否已被接受。

如果文件未被接受

将查找提供此文件的文件集。

从 BFF 映像中仅抽取(恢复)该文件。

向客户显示该文件。

LAF 文件集示例

以下是一个提供许可证文件的文件集的示例:iced.tea.loc.license 03.01.0000.0000 1 N U en_US IcedTea Recipe License Information

[

%

INSTWORK 16 160

LAF/usr/swlag/de_DE/iced.tea.la 24

LAF/usr/swlag/DE_DE/iced.tea.la 24

LAF/usr/swlag/en_US/iced.tea.la 24

LAF/usr/swlag/EN_US/iced.tea.la 24

LAF/usr/swlag/es_ES/iced.tea.la 24

LAF/usr/swlag/ES_ES/iced.tea.la 24

LAF/usr/swlag/fr_FR/iced.tea.la 24

LAF/usr/swlag/FR_FR/iced.tea.la 24

LAF/usr/swlag/it_IT/iced.tea.la 24

LAF/usr/swlag/IT_IT/iced.tea.la 24

LAF/usr/swlag/ja_JP/iced.tea.la 24

LAF/usr/swlag/JA_JP/iced.tea.la 32

LAF/usr/swlag/Ja_JP/iced.tea.la 24

LAF/usr/swlag/ko_KR/iced.tea.la 24

LAF/usr/swlag/KO_KR/iced.tea.la 24

LAF/usr/swlag/pt_BR/iced.tea.la 24

LAF/usr/swlag/PT_BR/iced.tea.la 24

LAF/usr/swlag/ru_RU/iced.tea.la 24

LAF/usr/swlag/RU_RU/iced.tea.la 48

LAF/usr/swlag/zh_CN/iced.tea.la 16

LAF/usr/swlag/zh_TW/iced.tea.la 16

LAF/usr/swlag/Zh_TW/iced.tea.la 16

LAF/usr/swlag/ZH_TW/iced.tea.la 24

%

%

%

]

LAR 文件集示例

以下是一个提供许可证文件需求的文件集的示例:iced.tea.server 03.01.0000.0010 1 N B en_US Iced Tea Recipe Group

[

*prereq bos.net.tcp.client 5.1.0.10

*coreq iced.tea.tools 5.1.0.10

*coreq Java14.sdk 1.4.0.1

%

/usr/bin 624

/usr/lib/objrepos 24

/usr/include 16

/usr/include/sys 56

/usr/lpp/iced.tea 22

/usr/samples/iced.tea 8

/usr/samples/iced.tea/server 504

/usr/lpp/iced.tea/inst_root/etc/tea 8

/usr/iced.tea 8

/usr/lpp/iced.tea/inst_root/etc/tea/Top 8

INSTWORK 208 96

/lpp/iced.tea 104

/etc/tea 8

/etc/objrepos 8

/etc/tea/Top 8

/tmp 0 6

LAR/usr/swlag/%L/iced.tea.la 0

%

%

%

]

取代信息部分

取代信息部分表示文件集或文件集更新的级别,为此文件集或文件集更新可能(或可能不)用作替换。 取代信息是可选的,仅适用于 AIX 4.1格式化文件集基本安装包和 AIX 3.2格式化文件集更新包。

较新的文件集将取代该文件集的较旧版本,除非 lpp_name 文件的取代信息部分指定了它取代的该文件集的最新级别。 很少情况下文件集不取代它所有的较早级别,这时,installp 命令不使用该文件集来满足比取代部分中列示的文件集的级别老的文件集的必备条件。

仅当文件集更新包含所有文件、配置处理以及较旧版本的文件集更新中所含有的必备条件信息的情况下,文件集更新才会取代它的较旧更新。 installp 命令确定在下列情况下文件集更新取代它的另一个更新。

更新软件包的版本、发行版以及修改级别均相等,修订级别均不为零,并且较高修订级别的更新软件包不含有这样的文件集的必备条件,即在级别上大于或等于较低修订级别的更新软件包的文件集。

更新软件包的版本和发行版的级别均相等,且较高修改级别的更新软件包中不含有这样的文件集的必备条件,即级别大于或等于较低修改级别的更新软件包的文件集。

例如,文件集更新farm.apps.hog 4.1.0.1提供以下内容的更新/usr/sbin/sellhog.文件集更新farm.apps.hog 4.1.0.3向/usr/sbin/sellhog文件和/etc/hog中。 文件集更新farm.apps.hog

4.1.1.2向/usr/bin/raisehog中。

更新farm.apps.hog 4.1.0.3取代farm.apps.hog 4.1.0.1因为它提供相同的文件,适用于相同的级别、farm.apps.hog 4.1.0.0.

更新farm.apps.hog 4.1.1.2并不取代farm.apps.hog 4.1.0.3或farm.apps.hog 4.1.0.1因为它不包含相同的文件,而且适用于不同的级别、farm.apps.hog 4.1.1.0.更新farm.apps.hog 4.1.1.0取代farm.apps.hog 4.1.0.1和farm.apps.hog 4.1.0.3.

文件集安装级别(基本级别)的取代部分

AIX 4.1格式的文件集安装包可以包含以下取代条目:

屏障条目

确定引入了主要不兼容性的文件集级别。 这样的不兼容性条目使当前的文件集无法满足比指定级别更早级别的文件集的必备条件。

兼容性条目

表明文件集可用于满足另一个文件集的必备条件。 兼容性条目在文件集已重命名或已过时的情况下使用。 只有一个文件集可以取代给定的文件集。 可以为每个文件集仅指定一个兼容性条目。

对于一个文件集,lpp_name 文件最多只能包含一个屏障条目和一个兼容性条目。

在引入了不兼容性时,屏障条目由造成不兼容的文件集名称和级别构成。 屏障条目只有在以下这种很少出现的情况下才是必要的,即某个文件集级别引入了不兼容性,使相关文件集所需的功能被修改或除去,致使无法满足以前级别文件集的必备条件。 屏障条目必须存在于所有后续版本的文件集中,表明满足相关文件集的必备条件的文件集最新级别。

例如,如果在文件集Bad.Idea 6.5.6.0,每条信息的取代信息部分Bad.Idea文件集安装包6.5.6.0之后将包含一个Bad.Idea 6.5.6.0进入障碍。 这种准入壁垒将阻止Bad.Idea 6.5.4.0任何级别的Bad.Idea大于或等于6.5.6.0.

兼容性条目由一个文件集名称(与软件包中的文件集名称不同)和一个文件集级别构成。 文件集级别确定安装软件包中的文件集要满足哪个级别的指定文件集(以及该文件集的较早级别)的必备条件。 兼容性条目在指定文件集已过时或重命名且当前文件集中包含指定文件集的功能时会很有用。 兼容性条目中的文件集级别应高于指定文件集任何应存在的级别。

例如,假设Year.Full 19.91.0.0文件集不再作为一个单元交付,而是分成几个较小的单独文件集。 只有一个较小的文件集,可能是Winter 19.94.0.0的兼容性条目Year.Full 19.94.0.0.该兼容性条目允许Winter 19.94.0.0文件集,以满足依赖于Year.Full各级19.94.0.0及更早。

取代处理

installp 命令提供了以下几个特殊功能,用于安装能取代其他文件集或文件集更新的那些文件集和文件集更新:

如果安装介质中不含有用户请求安装的文件集或文件集更新,那么可以安装存储在安装介质上的取代文件集或文件集更新。例如,假设用户在调用installp命令时使用了-g标志(自动安装必要组件),以安装farm.apps.hog 4.1.0.2文件集。 如果安装介质包含farm.apps.hog 4.1.0.4文件集,那么installp命令将安装farm.apps.hog 4.1.0.4文件集,因为它取代了所请求的级别。

如果系统和安装介质中不含必需的文件集或文件集更新,那么取代的文件集或文件集更新可以满足必备条件。

如果为安装请求一个更新并且 -g 标记已指定,那么安装介质上最新的取代更新满足该请求件。installp 命令如果指定了 -g 标记,那么安装介质上的最新取代更新可以满足为安装请求(显式或隐式)的任何更新。 如果用户希望安装一个特定级别的更新而不必是最新级别的更新,那么用户可以调用不带 -g 标记的 installp 命令。

如果为安装请求了更新和取代的更新(两者都在安装介质上),那么 installp 命令将只安装较新的更新。在这种情况下,如果用户希望应用安装介质上的特定更新及其取代更新,那么用户必须对每个更新级别执行单独的 installp 操作。 请注意,如果应用和落实了两个更新 (-ac),那么此类操作是无意义的。 落实第二个更新将从系统中除去第一个更新。

修订信息部分

修订信息部分是可选的。 修订信息部分条目中包含一个修订关键字和对已修订问题的描述(少于等于 60 个字符)。 修订关键字是对应于修订程序的标识(少于等于 16 个字符)。 Fix keywords beginning with ix, iy, IY andIX are reserved for use by the operating system manufacturer.

技术级别是一个主更新级别的修订程序。 定期预防性维护软件包就是技术级别。 技术级别标识符以软件产品(而非软件包)名称开头,后面跟一个点(.)和一个标识级别,如farm.4.1.1.0.

liblpp.a 安装控制库文件

liblpp.a 文件是一个归档文件,包含控制软件包安装所需的文件。 在AIX 4.3及以上版本的系统上,可以使用带有-g标志的ar命令为软件包创建liblpp.a文件,以确保创建的是 32 位压缩包。 此部分描述多个可放在 liblpp.a 归档文件中的文件。

在此部分中,Fileset 出现在控制文件的名称中。 Fileset 代表了在软件包中要安装的不同文件集的名称。 例如,假定应用列表文件描述为 Fileset.al。 的应用列表文件bos.net.tcp.client选项的bos.net软件产品将bos.net.tcp.client.al.

除了此部分中列示的文件以外任何包含在 liblpp.a 归档文件中的文件都应使用以下命名约定:

如果文件用于安装特定文件集,文件名应以文件集开头。 前缀

如果文件被用作同一软件包中多个文件集的通用文件,则文件名应以 "lpp。开头。 前缀

在此部分中描述的许多文件是可选的。 只有文件所提供的函数是文件集或文件集更新所需的,可选的文件才是必需的。 除非另有声明,否则文件同时属于完全安装软件包和文件集更新软件包。

包含在 liblpp.a 文件中的数据文件

文件集

应用列表。 该文件列示了此文件集中所有要恢复的文件。 文件每行列出一个,路径相对于根文件,如./usr/bin/pickle.如果文件集或文件集更新中包含任何文件,则需要应用列表文件。

Fileset.cfginfo

特殊的指示文件。 此文件一行列示一个关键字,每个关键字表示文件集或文件集更新的特殊特性。 唯一当前已识别的关键字是 BOOT,该关键字使安装完成后生成一条消息,指出系统需要重新启动。

文件集.cfgfiles

用户可配置文件的列表以及处理指示,在对已安装的文件集应用较新或相等安装级别时可以使用这些指示。 在恢复 Fileset.al 文件中列示的文件之前,系统将保存 Fileset.cfgfiles 文件中列示的文件。 之后,将根据在 Fileset.cfgfiles 文件中指定的处理方法对这些已保存的文件进行处理。

文件集版权

文件集的必需版权信息文件。 该文件由软件产品的全名后跟版权声明构成。

Fileset.err

作为errupdate命令输入的错误模板文件,用于添加或删除错误记录模板库中的条目。 该文件通常由设备支持软件使用。 errupdate 命令创建一个 Fileset.undo.err 文件用以进行清除。 有关Fileset.err文件格式的信息,请参阅errupdate命令。 该文件只能包含在文件集的 root 部分。

Fileset.fixdata

节格式文件。 该文件含有有关包含在文件集或文件集更新中的修订的信息。

文件集清单

清单文件。 该文件包含了文件集或文件集更新中的文件所需的软件重要产品数据。 该清单文件是一个节格式的文件,其中对每个要安装或更新的文件包含一个条目。

文件集命名列表

过时文件集和当前文件集(如果有的话)的列表,当前文件集中曾包含了现在存在于要安装文件集中的文件。 该文件只用于重新封装的软件产品的安装。

Fileset.odmadd 或 Fileset.*.odmadd

添加到 ODM(对象数据管理器)数据库中的节。

文件集.rm_inv

除去清单文件。 该文件仅用于重新封装的软件产品的安装,如果文件集并不直接替代过时文件集,那么该文件必须存在。 该节格式的文件包含了需要从过时文件集中除去的文件的名称。

文件集大小

该文件包含了此部分较早所述的包含在该文件集中的文件的空间需求。

文件集.trc

跟踪报告模板文件。 trcupdate命令使用该文件添加、替换或删除/etc/trcfmt文件中的跟踪报告条目。 trcupdate 命令创建一个执行清除的 Fileset.undo.trc 文件。 只有软件包的 root 部分中可以包含 Fileset.trc 文件。

lpp.acf

整个软件包的归档控制文件。 该文件仅当归档成员文件添加或替换到系统中已存在的归档文件时才需要。 归档控制文件中列示了临时目录中的成员文件对,如同 Fileset.al 文件和成员所属的归档文件中所列示的一样(针对 root 的相对路径):

./usr/ccs/lib/libc/member.o ./usr/ccs/lib/libc.a

lpp.README

自述文件。 该文件包含用户在使用该软件前应阅读的信息。 该文件是可选的,也可以命名为 README、lpp.doc、lpp.instr 或 lpp.lps。

productid

产品标识文件。 该文件只有一行,其中指定了产品名称、产品标识(限制在 20 个字符之内)以及可选的功能部件号(限制在 10 个字符之内)。

包含在 liblpp.a 文件中的可选可执行文件

在此部分中描述的特定于产品的可执行文件将在安装过程中被调用。 除非另有说明,否则以 _i 结尾的文件名只在安装处理中使用,以 _u 结尾的文件名称只在文件集更新处理中使用。 所有在此部分中描述的文件都是可选的,并且可以是 shell 脚本或可执行对象模块。 每个程序都应有一个为 0(零)的返回值,除非这样会导致程序安装或更新失败。

Fileset.config 或 Fileset.config_u

在缺省的安装或更新过程临近结束时修改配置。 Fileset.config 只在安装处理中使用。

Fileset.odmdel 或 Fileset.*.odmdel

在为文件集添加新的 ODM 条目之前更新该文件集的 ODM 数据库信息。 odmdel 文件的命名约定使一个文件能够拥有多个 odmdel 文件。

Fileset.pre_d

表明在卸载期间文件集是否可以除去。 如果文件集可以除去,那么该程序必须返回 0(零)值。 缺省情况下,文件集是可以除去的。 该程序应生成指出文件集无法除去的原因的错误消息。

Fileset.pre_i 或 Fileset.pre_u

在恢复或保存软件包中应用列表上的文件之前,但在从先前安装的文件集版本中除去文件之后再运行。

Fileset.pre_rej

在拒绝操作或预览文件集的拒绝操作之前运行。 使用该脚本可确定文件集是否可被拒绝。 不要使用该脚本来运行任何会更改系统上任何东西的命令。 如果该脚本退出并带有一个非零返回码,那么拒绝操作是不允许的。

文件集.pre_rm

在安装文件集期间,从先前安装的文件集版本中除去文件之前运行。

Fileset.post_i 或 Fileset.post_u

在从文件集安装或更新的应用列表中恢复文件之后运行。

Fileset.unconfigFileset.unconfig_u

撤销在卸载或拒绝文件集期间安装或更新中所执行的配置处理。 Fileset.unconfig 只在卸载处理期间使用。

Fileset.unodmadd

删除在安装或更新期间添加到 ODM 数据库中的条目。

Fileset.unpost_i 或 Fileset.unpost_u

撤销在卸载或拒绝文件集期间发生于在安装和更新中从应用列表恢复的文件之后所执行的处理。

Fileset.unpre_i 或 Fileset.unpre_u

撤销在卸载或拒绝文件集期间发生于在安装和更新中从应用列表恢复文件之前所执行的处理。

如果这些可执行文件中的任意一个运行了可能更改机器上的设备配置的命令,那么该可执行文件应在运行该命令之前先检查环境变量 INUCLIENTS。 如果 INUCLIENTS 环境变量已设置,那么不应运行该命令。 网络安装管理 (NIM) 环境使用 installp 命令实现许多目的,其中有一些要求 installp 命令绕过该命令的某些正常处理。 NIM 会在必须绕过该正常处理的时候设置环境变量 INUCLIENTS。

如果缺省的安装处理不能满足您的软件包的要求,您可以在 liblpp.a 文件中提供以下可执行文件。 如果您的软件包中提供了这些文件,那么 installp 命令将使用软件包提供的文件来代替系统缺省的文件。 软件包提供的文件中必须含有与缺省文件相同的功能,否则将发生无法预料的结果。 您可以使用缺省文件作为模型来创建您自己的文件。 强烈建议使用缺省文件来代替软件包提供的文件。

instal

用于替换缺省的安装脚本 /usr/lib/instl/instal。 如果已应用了某个安装软件包中的文件集,那么 installp 命令将调用该可执行文件。

lpp.cleanup

用于替换缺省的安装清除脚本 /usr/lib/instl/cleanup。 如果某个安装或更新软件包中的文件集已部分应用,那么 installp 命令将调用该可执行文件,该文件必须被清除之后才能使文件集回到一致状态。

lpp.deinstal

用于替换缺省的文件集除去脚本 /usr/lib/instl/deinstal。 该可执行文件必须在 /usr/lpp/PackageName 目录下。 如果某个安装软件包中的文件集已被除去,那么 installp 命令将调用该可执行文件。

lpp.reject

用于替换缺省的安装拒绝脚本 /usr/lib/instl/reject。 如果某个更新软件包中的文件集更新被拒绝,那么 installp 命令将调用该可执行文件。 (缺省的 /usr/lib/instl/reject 脚本是一个指向 /usr/lib/instl/cleanup 脚本的链接。)

更新 (update)

用于替换缺省的文件集更新脚本 /usr/lib/instl/update。 如果已应用了某个更新软件包中的文件集,那么 installp 命令将调用该可执行文件。 (缺省的 /usr/lib/instl/update 脚本是一个指向 /usr/lib/instl/instal 脚本的链接。

为确保与installp命令兼容,随软件包提供的instal或update可执行文件必须

处理该软件包中的所有文件集。 它必须能够处理所有文件集的安装或为每个文件集调用其他可执行文件。

使用inusave命令保存待安装文件的当前级别。

使用inurest命令从分发介质中恢复 usr 部分所需的所有文件。

使用 "inucp命令从 "/usr/lpp/"软件包名称"/inst_root目录中复制根目录部分所需的所有文件。

创建一个 $INUTEMPDIR/status 文件,表明每个正在安装或更新的文件集的成功与否。

返回一个表明安装状态的退出码。 如果可执行文件 instal 或 update 返回一个非零返回码,且未发现任何状态 文件,那么安装进程认为所有的文件集均失败。

包含在 Fileset.al 文件中的可选可执行文件

文件集.unconfig_d

撤销在文件集的安装和更新过程中执行的特定于文件集的配置操作。 Fileset.unconfig_d 文件在 installp 命令指定了 -u 标记时使用。 如果未提供该文件但 -u 标记已指定,那么执行 Fileset.unconfig、Fileset.unpost_i 以及 Fileset.unpre_i 操作。

安装控制文件的进一步描述 Fileset.cfgfiles 文件

Fileset.cfgfiles 文件列示了需要保存的配置文件,以便迁移到文件集的新版本中而不丢失用户配置的数据。 要保存用户配置数据,必须在适当的 "liblpp.a文件(usr 或 root)中提供 "文件集".cfgfiles"文件。

Fileset.cfgfiles 文件对每个要保存的文件均包含一个条目。 每个条目包含文件名(相对于 root 的路径名)、一个空格分隔符和一个描述文件迁移的处理方法的关键字。 这些处理方法关键字是:

preserve

用保存目录中的已保存版本替换已安装的文件新版本。 在用已保存的版本替换了新文件之后,配置保存目录中已保存文件将被删除。

auto_merge

在 Fileset.post_i 处理期间,产品提供的可执行文件将已安装的文件新版本中的必要数据合并到保存在配置保存目录中的该文件的前一个版本中。 在 Fileset.post_i 处理期间,installp 命令用配置保存目录中的合并版本(如果存在)替换已安装的该文件的新版本,然后除去保存的文件。

hold_new

用保存目录中的已保存版本替换已安装的文件新版本。 文件的新版本将放置在配置保存目录中以代替旧的版本。 用户将能引用该新版本。

user_merge

将安装的该文件的新版本保留在系统中,而将文件的旧版本保留在配置保存目录中。 用户将能引用旧的版本来执行任何需要的合并。 如有可能,应避免使用该关键字。

其他

在任何其他定义的处理方法均不充分的情况下使用。 installp 命令将文件保存在配置保存目录中,但没有提供进一步的支持。 任何其他对配置文件的操作和处理都必须通过产品提供的可执行文件完成。 产品开发商有责任记录对该文件的处理。

可执行文件 Fileset.post_i 可用于对那些无法通过缺省的安装处理完成的配置数据执行特定的操作或合并。

文件集中列出的配置文件.cfgfiles文件保存在配置保存目录中,其相对路径名与文件集中给出的相对路径名相同.cfgfiles文件。 配置保存目录的名称将存储在环境变量 MIGSAVE 中。 该保存目录与将要安装的软件包部分相对应。 以下目录是配置保存目录:

/usr/lpp/save.config

用于 usr 部分

/lpp/save.config

用于 root 部分

如果需要保存的文件的列表随当前安装的文件集的级别而变化,那么 Fileset.cfgfiles 文件必须包含可以找到的配置文件的整个列表。 如果有必要,可执行文件 Fileset.post_i(或其他产品提供的可执行文件)必须处理该差异。

例如,假定您有一个文件集 (change.rte),在该文件集中有一个文件可以配置。 因此,在 root change.rte.cfgfiles 中将列示一个文件:

/etc/change_user user_merge

当从旧的文件集 (change.obj) 迁移到 change.rte 时,由于文件的格式已改变,故该文件无法保留。 但是,在从较旧级别的 change.rte 迁移到较新级别的 change.rte 时,该文件可以保留。 在这种情况下,您可能要创建一个 change.rte.post_i 脚本来查看要从中迁移文件的文件集,以及操作是否适当。 这样,如果某个用户已对 /etc/change_user 文件进行了更改,那么这些更改将被保存。

以下是 root change.bar.post_i 脚本:#! /bin/ksh

rc=0

grep -q change.rte $INSTALLED_LIST

if [$? = 0]

then

mv $MIGSAVE/etc/change_user/ /etc/change_user

rc=1

fi

exit $rc

$INSTALLED_LIST 通过 installp 创建和导出。 有关 Fileset.installed_list 配置文件的更多信息,请参阅“安装专用于重新封装产品的控制文件”。 变量 $MIGSAVE 中包含了保存 root 部分配置文件的目录的名称。

如果找不到Fileset.cfgfiles文件中列出的文件,installp命令不会发出警告或错误信息。 如果在Fileset.post_i处理之后的阶段未找到文件,当保存的配置文件按照其处理方法进行处理时,installp命令也不会产生信息。 如果需要任何的警告或错误消息,那么产品提供的可执行文件必须生成这些消息。

以Fileset.cfgfiles文件为例,其中的Product_X.option1文件集必须从位于文件集根部分的三个配置文件中恢复用户配置数据。 该Product_X.option1.cfgfiles的根目录中liblpp.a文件,其中包含以下内容./etc/cfg_leafpreserve

./etc/cfg_pudding hold_new

./etc/cfg_newtonpreserve

Fileset.fixdata 文件

Fileset.fixdata

一个节格式文件,描述文件集更新中(如果替代更新,那么在文件集安装中)所包含的修订程序

该文件中的信息将添加到一个修订数据库。 instfix命令使用该数据库来识别系统上安装的修复程序。 如果 Fileset.fixdata 存在于某个软件包内,那么修订数据库中的修订信息将在应用该软件包的时候被更新。

文件集中的每个修订文件应该在 Fileset.fixdata 文件中拥有其自己的节。 Fileset.fixdata 节的格式如下:

fix:

name = FixKeyword

abstract = Abstract

type = {f | p}

filesets = FilesetName FilesetLevel

[FilesetName FilesetLevel ...]

[symptom = [Symptom]]

FixKeyword 不能超过 16 个字符。

Abstract 描述修订程序,不能超出 60 个字符。

在 type 字段中,f 代表修订程序,而 p 代表预防性维护更新。

filesets 字段包含了一个以换行符分隔的文件集和文件集级别的列表。

FilesetLevel 是初始级别,该级别的文件集提供了修订程序的全部或一部分。

Symptom 是对由修订程序更正的问题的描述(可选)。 Symptom 没有字符限制。

下面的示例显示了问题的Fileset.fixdata节段MS21235.解决这一问题的方法包含在两个文件集中。

fix:

name = MS21235

abstract = 82 gigabyte diskette drive unusable on Mars

type = f

filesets = devices.mca.8d77.rte 12.3.6.13

devices.mca.8efc.rte 12.1.0.2

symptom = The 82 gigabyte subatomic diskettes fail to operate in a Martian environment.

Fileset.inventory 文件

文件集清单

包含了要为文件集安装或更新的每个文件的特定信息的文件

sysck

使用 Fileset.inventory 文件将文件名、产品名、类型、校验和、大小、链接以及符号链接信息输入软件信息数据库中的命令

安装或更新文件的文件集的每个部分都需要 Fileset.inventory 文件。 如果软件包具有一个不含有要安装的文件的 root 部分(它只负责配置),那么该 root 部分不需要 Fileset.inventory 文件。

注:Fileset.inventory 文件不支持大于 2 GB 的文件。 如果您提供的文件大于 2 GB,请将它包括到 fileset.al 文件中,而不是包括到 Fileset.inventory 文件中。 sysck 还未升级到能够处理大于 2 GB 的文件,并且在大多数机器上创建的 /usr 文件系统对于文件的容量不会大于 2 GB(缺省情况下)。

清单文件由节格式的 ASCII 文本构成。 节的名称为要安装的文件的全路径名。 节的名称以冒号 (:) 结尾,后跟一个换行符。 文件属性跟在节名称之后,格式为 Attribute=Value。 每个属性描述在单独的一行上。

Fileset.inventory 节具有以下格式:inventory:

type = type

class = inventory,apply,C2_exclude,fileset

owner = owner_name

group = group_name

mode = TCB | SUID | SGID,permissions

target = fullpath_filename

link = fullpath_to_hardlink [additional_hardlinks]

size = | VOLATILE |size

checksum = | VOLATILE |"checksum"

表 4。 有效属性

属性

描述

file_name

文件或链接相对于 root (./) 的完整路径,后面紧跟一个冒号 (:),然后是一个换行符。 该全路径名的最大长度为 255 个字符。

TYPE

file_name 条目的类型,它的有效类型是以下的一种:

关键字

含义

文件

标准文件

目录

目录

SYMLINK

符号链接的全路径

CLASS

指定了在安装时如何引用 file_name。 该字段必须至少具有以下的两个关键字:

类型项

含义

清单

表明该文件在安装完成后仍然存在。 该文件将添加到清单 SWVPD 数据库中。 该功能不能与fileset.il文件中的 "A类型文件一起使用。

应用 (apply)

表明该文件将从安装介质中恢复。 file_name 字段在应用列表 (fileset.al) 中列示。 这不适用于fileset.il文件 中的 "I类型文件。

C2_exclude

表明该文件应排除在对“C2 安全”系统执行之外。 如果使用了此标记,那么该文件还应在 fileset.tcb 文件中列示。

所有者

指定了安装后文件的所有者。 请不要对该字段使用用户标识。 属性值必须是所有者的名称,且不得长于 8 个字符。

指定了文件组。 请不要对该字段使用组标识。 属性值必须是组的名称,且不得长于 8 个字符。

方式

指定了文件方式。 值必须包含文件的许可证(八进制格式)。 以下任何关键字可以放在许可权值的前面。 列表中项以逗号分隔。

方式项

含义

TCB

“可信计算库”的一部分。 如果文件是 "SUID根文件或 "SGID系统文件,那么文件必须是 "TCB。

suid

该文件设置了集合用户标识位。 这对 "DIRECTORY条目没有意义。

sgid

该文件设置了集合组标识位。 如果在 "DIRECTORY条目上设置,则会强制在该目录下创建的所有文件与该目录具有相同的组。

权限

必须是三位八进制数,例如:644。注: 如果类型为 SYMLINK ,那么方式必须为 777。 其他的条目都是无效的。

链接

列示了该文件的所有硬链接。 如果存在多个硬链接,那么硬链接的每个全路径以逗号分隔。 硬链接必须作为源文件在同一目录中。 如果条目的类型是 "SYMLINK,则 "link 无效。 全路径名的最大长度是 255 个字符。

target

仅对 type=SYMLINK 有效。 这是链接目标的全路径文件名。 如果将要创建的链接是从 /usr/bin 指向 /bin,那么文件名应为 /bin,而目标应为 /usr/bin。 全路径名的最大长度是 255 个字符。

大小

方式项

含义

空白

如果该字段为空,那么文件名的大小将在安装时决定。 使用该选项的缺点在于如果在安装期间某个文件被损坏,客户不会得到通知。

VOLATILE

如果希望通过正常操作更改文件的大小,那么此属性值必须为 VOLATILE。

大小

文件的精确大小。

注意:请勿包含 "DIRECTORY或 "SYMLINK条目的大小字段。

校验和

方式项

含义

空白

如果此字段为空,则在安装文件时将sum-r命令返回的值放入清单 SWVPD 数据库。

VOLATILE

指定文件的大小(以块计)。 如果希望通过正常操作更改文件的大小,那么此属性值必须为 VOLATILE。

校验和

sum-r命令返回的文件精确总和。 必须用双引号括起。

注意:不要包含 "DIRECTORY或 "SYMLINK条目的校验和字段。

文件集

表明文件所属的文件集。

注意:如果硬链接和符号链接不存在,sysck命令会在安装过程中创建这些链接。 应将 root 部分的符号链接封装在 root 部分的 Fileset.inventory 文件中。

fileset.inventory 示例

下面的fileset.inventory示例演示了 "type的使用。

/usr/bin:

owner = bin

group = bin

mode = 755

type = directory

class = apply,inventory,bos.rte

/usr/bin/tcbck:

owner = root

group = security

mode = TCB,SUID,550

type = file

class = apply,inventory,bos.rte.security

size = 99770

checksum = "17077 98 "

/usr/sbin/tsm:

owner = root

group = security

mode = TCB,SUID,555

links = /usr/sbin/getty,/usr/sbin/login

class = apply,inventory,bos.rte,security

size = 55086

checksum = "57960 54 "

安装专用于重新封装产品的控制文件

文件集安装列表

如果从软件包中安装文件集时发现该文件集(或它的某些版本)已经以相同的级别安装在系统中,installp 命令所创建的文件。

通过搜索软件信息数据库来确定 Fileset 或任何在 Fileset.namelist(如果存在)中列示的文件集是否已安装在系统中。 如果已安装,那么文件集和安装级别将写入 Fileset.installed_list 文件中。

If it is created, the 文件集.installed_list is available at the time of the calls to the rminstal and 分期 executables. Fileset.installed_list 文件可以在以下目录、封装工作目录或 PackageWorkDirectory 目录中:

/usr/lpp/

usr 部分的 PackageName

/lpp/

root 部分的 PackageName

Fileset.installed_list 文件对每个已安装的文件包含一条占一行的条目。 每个条目包含了文件集的名称和级别。

例如,假设storm.rain 1.2.0.0文件集时,installp命令会发现storm.rain 1.1.0.0已安装。 然后,installp命令将创建PackageWorkDirectory/storm.rain.installed_list文件,内容如下storm.rain 1.1.0.0

再比如,假设Baytown.com文件集包含一个Baytown.com.namelist文件,其中包含以下条目Pelly.com

GooseCreek.rte

CedarBayou.stream

安装时Baytown.com 2.3.0.0文件集时,installp命令会发现Pelly.com 1.2.3.0和CedarBayou.stream 4.1.3.2已安装。 安装命令创建 "软件包工作目录""/Baytown.com.installed_list文件,内容如下Pelly.obj 1.2.3.0

CedarBayou.stream 4.1.3.2

表 5。 Fileset.namelist文件

属性

描述

文件集命名列表

在文件集名称发生更改,或文件集含有以前封装在过时文件集中的文件时,该文件是必需的。 它包含了所有这样的文件集的名称,即以前所包含的文件当前包含在要安装的文件集中。 每个文件集的名称必须出现在单独的一行上。

文件集.列表文件必须在liblpp.a文件的 "usr或 "root部分中提供。 文件集.namelist文件只对安装软件包有效,对更新软件包无效。

在安装开始时,installp 命令会搜索软件重要产品数据 (SWVPD) 来确定该文件集或任何在文件 Fileset.namelist 中列示的文件集是否已经安装在系统中。 installp 命令会将发现已安装的文件集的名称和级别写入 Fileset.installed_list 文件中,使产品提供的可执行文件可使用这些信息。

作为Fileset.namelist文件的一个简单示例,假定small.business文件集取代先前名为family.business.......small.business产品包包含small.business.namelist文件中的liblpp.a文件的 usr 部分。 该small.business.namelist文件包含以下条目family.business

举一个 Fileset.namelist 文件的较复杂的示例,其中一个文件集被分成一个客户机文件集和一个服务器文件集。 该LawPractice.client和LawPractice.server文件集取代早期的lawoffice.mgr文件集。 该LawPractice.server文件集还包含一些来自过时的BusinessOffice.mgr文件集。 该LawPractice.client.namelist的 "liblpp.a文件中的LawPractice软件包包含以下条目lawoffice.mgr

该LawPractice.server.namelist的 "liblpp.a文件中的LawPractice软件包包含以下条目lawoffice.mgr

BusinessOffice.mgr

如果Fileset.namelist文件只包含一个条目,且当前文件集不是直接替换Fileset.列表文件,您必须在 "liblpp.a文件中包含一个 "文件集".rm_inv文件。 安装进程使用 Fileset.namelist 文件和 Fileset.rm_inv 文件来确定某个文件集是否为另一个文件集的直接替代文件集。 如果 Fileset.namelist 文件只包含一个条目,并且 Fileset.rm_inv 文件不存在,那么安装进程将认为新文件集是旧文件集的直接替代文件集。 在安装了新文件集(替代文件集)之后,安装进程将从系统中除去所有旧文件集(被替换的文件集)的文件,甚至是新文件集中没有的文件。

在前面的例子中small.business文件集可直接替代family.business文件集,因此一个small.business.rm_inv文件不应存在。 该LawPractice.client文件集不能直接替代lawoffice.mgr文件集,因此一个LawPractice.client.rm_inv文件必须存在,即使它是空的。

示例 3:

文件集 bagel.shop.rte 和 bread.shop.rte 多年以来一直是分开提供的。 现在,bagel.shop.rte 将作为 bread.shop.rte 的一部分提供。 在这种情况下,文件 bread.shop.rte.namelist 看起来类似:bread.shop.rte

bagel.shop.rte

您同样必须提供一个空的 bread.shop.rte.rm_inv 文件以表明所有文件集 bagel.shop.rte 的文件应从系统中除去。

表 6。 Fileset.rm_inv文件

属性

描述

文件集.rm_inv

一个包含了要从系统中除去的文件、链接和目录(如果发现它们已安装)的列表的文件

该文件在以下情况下使用:当前文件集与文件集的前一个级别的封装方式不同,且根据清单数据库中的文件集的条目,安装进程不应除去从前安装的文件。

简单地对文件集的名称进行更改对要求一个 Fileset.rm_inv 文件是不够的。 在新的文件集是以前某个文件集的子集或以前多个文件集的若干部分的混合时,Fileset.rm_inv 文件是必需的。 如果 Fileset.namelist 文件存在,且包含多个文件集的条目,那么必须使用 Fileset.rm_inv 文件从系统中除去从前安装的文件级别。

Fileset.rm_inv 文件由节格式的 ASCII 文本构成。 节的名称是要除去的文件或目录(如果在系统中发现的话)的全路径名。 节名以冒号 (:),后面跟一个换行符。 如果属性跟在节名后面,则属性格式为属性=价值 这些属性用于确定需要除去的硬链接和符号链接。 每个属性描述在单独的一行上。 以下列表描述了与列示的文件关联的有效属性:

表 7。 属性和描述

属性

描述

链接

文件的一个或多个硬链接。 链接的全路径名以逗号分隔。

symlinks

文件的一个或多个符号链接。 链接的全路径名以逗号分隔。

注意:链接需要列出两次,一次作为独立的章节,一次作为链接文件的属性。

例如,假设U.S.S.R 19.91.0.0文件集包含/usr/lib目录中的以下文件:moscow,leningrad,kiev,odessa和petrograd(的符号链接leningrad).产品开发人员决定将U.S.S.R 19.91.0.0文件集分为两个文件集:Ukraine.lib 19.94.0.0和Russia.lib 19.94.0.0.......Ukraine.lib文件集包含kiev和odessa格式的文件。 该Russia.lib文件集包含moscow中。 该leningrad文件已不存在,取而代之的是st.petersburg文件中的Russia.lib文件集。

该Ukraine.lib.rm_inv文件必须存在,因为Ukraine.lib文件集不能直接替代U.S.S.R文件集。 该Ukraine.lib.rm_inv文件应为空,因为当Ukraine.lib文件集,以清理迁移中的U.S.S.R文件集。

该Russia.lib.rm_inv文件必须存在,因为Russia.lib文件集不能直接替代U.S.S.R文件集。 如果指定了Russia.lib.rm_inv文件用于删除leningrad文件时Russia.lib文件集已安装Russia.lib.rm_inv文件将包含以下一节:/usr/lib/leningrad:

symlinks = /usr/lib/petrograd

/usr/lib/petrograd:

补充磁盘子系统的安装文件

不和提供的 SCSI 或连接总线的设备一起配置的磁盘子系统需要有自己的设备驱动程序和配置方法。 这些安装文件提供在一张补充软盘上(随设备一起),并且必须是带有 ./signature 文件和 ./startup 文件的备份格式。 特征符文件必须包含字符串 target。 启动文件必须使用按名称的恢复,以从补充软盘中抽取所需的文件,然后运行使设备进入可用状态所必需的命令。

分发介质的格式

以下介质类型可用来分发软件产品安装软件包。

以下几部分描述了在所有这些介质上分发多个产品必须使用的格式。

磁带

为了将多个产品软件包映像放入一盘磁带或一组磁带上,一组磁带中每个磁带上的文件必须使用以下格式:

文件 1 为空。 (为可引导磁带保留。)

文件 2 为空。 (为可引导磁带保留。)

文件 3 包含一张目录文件,描述了该组磁带上的产品软件包映像。 因此,除了多卷集合中的磁带卷号不同以外,这组磁带中的每个磁带都包含一个相同的目录文件副本。

文件 4 至(N+3) 包含产品包的备份格式文件映像1通过N.

一个产品软件包映像文件不能分布在两个磁带上。

每个文件后面跟一个文件结束磁带标记。

CD-ROM

包含多个产品软件包映像的 CD-ROM 必须与 Rock Ridge 组协议相兼容。 产品软件包应存储在安装目录中,该目录必须包含以下内容:

产品软件包的备份格式文件映像。

一张名为 .toc 的目录文件,描述目录中的产品软件包映像。

多卷 CD-ROM 是具有附加目录结构的 CD-ROM,该结构将一组 CD-ROM 定义为单个可安装单元。

多卷 CD-ROM 必须遵循以下规则:

/installp/mvCD 目录必须存在以下内容:

描述该组所有 CD-ROM 上的产品软件包映像的目录文件 (.toc)。 CD-ROM 上的每个卷在 /installp/mvCD 上必须具有相同的 .toc。

一个名为 volume_id 的 ASCII 文件,该文件中的首行由组 1 中的 CD 的十进制卷号构成。

名为 vol% n 的符号链接,其中,n 是组中的 CD 的十进制卷号。 符号链接的目标必须是 CD 该特定卷上的产品软件包目录的相对路径。 符号链接的标准值是 ../ppc。

/installp/mvCD 中的目录文件 (.toc) 必须与标准目录格式一致。 多卷 .toc 中的特殊特性是每个产品软件包映像的位置以目录条目 vol% n 开头,其中 n 表示含有该特定产品软件包的卷。

AIX 5.2示例

文件集 A 位于卷 1 的文件A.bff中,文件集 B 位于卷 2 的文件B.bff中。 /installp/mvCD目录文件中包含 A 和 B 产品包图像位置的字段分别为vol%1/A.bff和vol%2/B.bff。 卷 1 的 /installp/ppc 中的目录文件中的字段包含 A.bff 作为 A 的位置。 卷 2 的 /installp/ppc 中的目录文件表中的字段包含 B.bff 作为 B 的位置。

AIX 5.1 和更高版本的 CD-ROM 目录结构允许指定其他安装程序以及多个平台。

软盘

为了将多个产品软件包映像放到一组软盘中,必须将以下文件写入一组软盘中:

目录文件,描述要包含在软盘组中的产品软件包映像。

将包含在软盘组中的所有产品软件包映像文件。

这些文件写入软盘组中时遵循以下规则:

将数据作为流写入软盘组中,同时在组中的每个软盘的块 0 中插入一个卷标识扇区。 某个卷中的最后一块的数据将视为与下一个卷(卷标识扇区将在读取时验证并废弃)中的块 1 的数据逻辑相邻。

每个文件都在 512 字节的块的边界上开始。

首先写入目录文件。 用空字符填充文件的最后一个扇区 (x'00').至少需要一个空字符来标记目录文件的结束。 因此,可能需要对整个扇区填充空字符。

在目录文件的后面,将每个产品软件包映像文件写入后续的扇区中。 使用空字符填充每个文件的最后一个扇区。 如果文件在块的边界处结束,那么不需要空字符。

组中的每个软盘的块 0 包含了一个卷标识扇区。 此扇区的格式为:

位置

描述

Bytes 0:3

标识的幻数。 这是一个二进制整数,数值为十进制3609823513=x'D7298918'.

Bytes 4:15

提供了一个作为软盘组标识的日期和时间戳记(ASCII 格式)。 格式为 MonthDayHourMinuteSecondYear。 Hour 应为 00 到 23 之间的值。 日期和时间字段都包含两位数字。 因此,"月 "应表示为03而不是3年份应表示为94而不是1994.

Bytes 16:19

软盘组中的二进制整数卷号。 套装中的第一张软盘是x'00000001'.

Bytes 20:511

二进制零。

表 8。 目录文件

字段名

格式

分隔符

描述

1. 卷

字符

空格

对于磁带和软盘的目录文件,这是包含此数据的卷号。 对于固定磁盘或光盘目录文件,卷号为0.

2. 日期和时间戳记

mmddhhMMssyy

空格

对于磁带和软盘,这是创建卷 1 时的时间戳记。 对于固定磁盘或 CD-ROM,这是创建 .toc 文件时的时间戳记。 请参阅本章稍后的“日期和时间戳记格式”,以了解更详细描述。

3. 头格式

字符

换行

表明目录文件格式的数字。 有效的条目为:

1-AIX V 3.1

2 - V3.2

3-AIX V 4.1 或更高版本

B - mksysb 磁带(不能由 installp 使用)

4. 产品软件包映像的位置

字符

空格

对于磁带或软盘,这是一个字符串,格式为:vvv:bbbbb:sssssss。请参阅本章稍后的“磁带和软盘的位置格式”,以了解详细的描述。 对于固定磁盘或 CD-ROM,这是产品软件包映像文件的文件名。 请注意,这只是文件名,所以不得在它前面加路径名的任何部分。

5. 软件包特定信息

lpp_name 文件格式

换行

包含在该产品软件包映像中的 lpp_name 文件的内容。 请参阅“lpp_name 软件包信息文件”,以了解更详细的描述。

注:介质上包含的每个产品包装图像都要重复上表中的第 4 和第 5 项。

日期和时间戳记格式

日期和时间戳记格式是以下格式的 ASCII 字符串:

MonthDayHourMinuteSecondYear

Hour 应为 00 到 23 之间的值。 日期和时间字段都包含两位数字。 因此,"月 "应表示为03而不是3年份应表示为94而不是1994.

磁带和软盘的位置格式

位置的格式为 vvv:bbbbb:sssssss,其中每个字母代表一位,这些位具有以下意义:

对于磁带

vvv

是磁带的卷号。

bbbbb

是产品软件包映像的磁带上的文件号。

ssssssssss

是以字节计的文件大小。

对于软盘

vvv

是软盘的卷号。

bbbbb

是软盘上产品软件包映像文件开始处的块号。

ssssssssss

是以字节计的文件大小(包括填充到块边界端的大小)。

AIX可迁移安装

虽然AIX本机安装实用程序(如installp、instfix、lslpp 和lppchk)现在已支持AIX可重置安装,但对于需要安装在工作负载分区内的应用程序来说,使用重置功能尤为重要。 这是因为缺省的系统 WPAR 配置不包含可写的 /usr 或 /opt 文件系统。 因此,可能需要将应用程序安装重定位到其他位置而不是传统的 /usr 或 /opt 位置。

除了可在缺省的安装位置(即 “/”)安装文件集,管理员现在可在其他的根安装位置安装可重定位的程序包。 这使管理员可以进行以下操作:

在 AIX 操作系统的单个实例中安装并维护同一 installp 软件包的多个安装

在 AIX 操作系统的单个实例中安装和维护同一 installp 软件包的多个版本

使用本机 installp 跟踪工具(如 lppchk、lslpp、instfix 和 inulag)验证和报告所有重定位安装实例的安装数据

连接和拆离给定系统(应用程序托管)上的预安装软件位置。

术语

根安装路径

安装应用程序的基本目录。 installp的默认安装路径是"/"。

缺省安装路径

缺省的根安装路径(即“/”)。

重定位安装路径

非缺省安装路径的任何根安装路径。 路径位置可能是任何不是“/”的有效路径并且其大小不大于 512 个字符。

可重定位的应用程序

可将应用程序安装到非缺省的根安装路径。

USIL(用户指定的安装位置)

由用户设置的重新定位的安装路径实例。

USIL

用户指定的安装位置 (USIL) 指由管理员创建的被跟踪重定位安装路径。 该位置被系统跟踪并可用作支持重定位的程序包的备用安装路径。 通过将每个安装分配到一个单独的 USIL,可在单一系统上安装同一软件包的多个实例和/或版本。 可将已存在的 USIL 实例从任何给定系统上连接或拆离。

每个 USIL 实例维护在当前所有的三个 installp 部件中其自身的重要软件产品数据 (SWVPD):

<安装根目录/etc/objrepos

<安装根目录/usr/lib/objrepos

<安装根目录/usr/share/lib/objrepos

注意:

当前 SWVPD 对象类包含以下内容:

product

lpp

清单

历史记录

补丁

vendor

lag

每个 USIL 实例将在重定位路径中镜像缺省的 SWVPD 结构。

USIL 管理命令

/usr/sbin/mkusil

创建或连接新的 USIL 实例。

mkusil -R RelocatePath -c Comments [X

Fa]

-a

将已存在的安装作为 USIL 实例连接

-c

在 USIL 定义中包含的注释(可使用 lsusil 命令显示)

-R

新 USIL 位置的路径。 必须是有效目录。

-X

自动扩展所需空间

/usr/sbin/lsusil

列示已存在的 USIL 实例。

lsusil [-R RelocatePath | "全部"]

-R

已存在的 USIL 位置的路径。

/usr/sbin/rmusil

除去已存在的 USIL 实例。

rmusil-R RelocatePath

-R

已存在的 USIL 位置的路径。

注意: rmusil命令仅删除 SWVPD 中的 USIL 引用。 不会在 USIL 安装路径中除去文件。

/usr/sbin/chusil

更改已存在 USIL 实例的属性。

chusil -R RelocatePath -c NewComments [

X]

-c

在 USIL 定义中包含的新注释(可使用 lsusil 命令显示)

-R

已存在的 USIL 位置的路径。

-X

自动扩展所需空间

可重定位安装实用程序

要保持代码隔离,请将所有 USIL 更改隔离到单独编译的模块中。 重定位的安装实用程序包含以下用户级模块:

/usr/sbin/mkusil

/usr/sbin/rmusil

/usr/sbin/lsusil

/usr/sbin/chusil

注意:

每个实用程序都使用 -R RelocatePath 标记。

当使用可重定位的 installp 程序包时,必须使用以上实用程序。

可重定位应用程序封装的要求

程序封装必须支持重定位的安装。 以下是推荐的指南:

可重定位的应用程序程序包不可以在其根安装位置之外传递(写入)库存对象。

可重定位的应用程序程序包不可以在其根安装位置之外使用封装定制传递(写入)数据。

对于每个可重定位的文件集,可重定位的应用程序程序包必须包含 RELOCATABLE 扩展封装属性。 文件集是可重定位的最小安装单位。

可重定位的应用程序程序包不一定要位于外部重定位路径。 可要求将文件集安装在缺省安装路径或其自身安装路径中。

可重定位应用程序执行的要求

应用程序设计必须支持从安装环境执行。 以下是推荐的指南:

应用程序必须具有确定其根安装位置或函数的方法,以使其不依赖于安装位置。

应用程序必须相对于与其根安装位置引用所有应用程序特定可执行组件。

应用程序必须相对于与其根安装位置引用所有应用程序特定可执行组件,或者必须设计为与其他实例共享数据。

应用程序不可在其根安装位置之外进行任何持久的更改。

USIL 连接器 ODM 类对象

USIL 连接器对象数据管理器类对象位于 /etc/objrepos/usilc 文件中并包含链接缺省 SWVPD 与所有 USIL 实例的数据。

以下是该对象类在 swvpd.cre 中的条目:/* User Install Location Connector */

/* Connects the default install path to all relocated install paths. */

class usilc {

vchar path[1024]; /* USIL path */

vchar comments[2048]; /* USIL Comments */

long flags; /* USIL flags */

};

使用 -R "ALL" 或 -R "all" 选项来列示所有安装路径

如果使用了 -R "ALL" 语法,那么 lslpp 和 lppchk 命令可以执行所有安装位置上的列示操作。

连接/拆离操作

连接操作允许用户将已存在的拆离 USIL 路径集成到 SWVPD 中。

例如,如果管理员使用多种已安装的可重定位应用程序创建主 USIL 实例以用于应用程序托管。 那么该 USIL 实例可由管理员复制或 NFS 加载到各种系统并且使用连接功能将 USIL 集成到 SWVPD 中。 拆离操作将除去对 USIL 实例的引用。

installp 许可证发放

新的 USIL 实例使用空的 LAG 启动 (installp 许可协议对象数据管理器对象类)启动。 任何需要许可证的文件集或 LPP 的安装都将需要符合常规 installp 约定的许可证验收。 许可证验收不跨越 USIL 实例。

|可信计算库 (TCB)

支持 TCB 的系统当前不支持安装 USIL 实例。

可重定位必备条件

新的封装语法指示可重定位的必需位置。 封装程序可指定在缺省安装路径或重定位的安装路径中找到给定需求。

以下是应用的新必需的语法:

prereq_ r = prereq in relocated install path

ifreq_r = ifreq in relocated install path

coreq_r = coreq in relocated install path

instreq_r = instreq in relocated install path

当前已定义的必需类型(prereq、ifreq、coreq 和 instreq)是所有缺省必需(应用到缺省安装位置的必需)。

可重定位软件包的 TOC 更改

以下是 TOC 文件中新必需段的样本:sscp.rte.1.0.0.5.U.PRIVATE.bff 4 R S sscp {

sscp.rte 01.00.0000.0005 1 N B En_US Sscp

[

*coreq bos.games 1.1.1.1 <-- default requisite in default requisite section

*prereq bos.rte 1.1.1.1 <-- default requisite in default requisite section

%

/usr/bin 20

/etc 20

INSTWORK 72 40

%

%

%

IY99999 1 APAR text here.

%

RELOCATABLE <-- attribute tag to denote relocatable package

%

*prereq bos.rte 1.1.1.1 <-- default requisite in relocated requisite section

*coreq_r bos.games 1.1.1.1 <-- relocated requisite in relocated requisite section

]

}

注意:

如果在重定向安装过程中出现重定位必需段,可将其用作安装的必需段。

如果在重定向安装过程中未出现重定位必需段,那么使用缺省的必需段。 这说明所有必需都是缺省必需。

缺省安装(非重定向)不使用可重定向必需段。

表 9。 产品软件包的 installp 处理

命令

描述

应用

当应用了产品安装软件包中的某个文件集之后,它将安装在系统中,并且覆盖所有以前存在的版本,然后落实系统上该版本的文件集。 如果用户认为不再需要该文件集,可将其除去。在应用文件集更新时,该更新将被安装,并且信息被保存(除非另有请求),以便将来可以除去该更新。 以前应用的文件集更新可以在以后落实或拒绝。

落实

当文件集更新被落实后,在应用时保存的信息将从系统中除去。 落实已应用的软件不会更改文件集的当前活动版本。

拒绝

当更新被拒绝之后,应用时保存的信息将用于将文件集的活动版本更改为被拒绝的更新之前的版本。 然后保存的信息将从系统中除去。 拒绝操作只对更新有效。 拒绝操作中的许多相同的步骤是在文件集或文件集更新未能完成安装后在 cleanup 操作中执行的。

除去

在文件集被除去后,该文件集及其更新将独立于它们的状态(已应用、已落实或中断)而从系统中除去。 除去操作只对文件集的安装级别有效。

产品软件包中提供的可执行文件可以定制应用、拒绝以及除去操作的处理。

重新安装文件集与除去和安装相同的文件集不会执行相同的操作。 重新安装操作(请参阅 /usr/lib/instl/rminstal)将从以前的版本或相同的版本中清除当前文件,但不会运行任何 unconfig 或 unpre* 脚本。 因此,请不要认为 unconfig 脚本运行过。 .config 脚本会在假定 unconfig 已完成之前先检查环境。

例如,对于 ras.berry.rte 文件集,该 config 脚本会向根的 crontab 文件添加一行。 重新安装文件集 ras.berry.rte 将形成两个 crontab 条目,因为 unconfig 脚本未在重新安装时运行(该脚本除去了 crontab 条目)。 配置脚本会始终除去该条目,然后再次添加它。

应用操作的处理

此部分描述在文件集或文件集更新应用之后 installp 命令采取的步骤。

从指定的设备中恢复软件包的 lpp_name 产品软件包信息文件。

验证请求的文件集是否存在于安装介质中。

检查请求的文件集的级别以确保这些文件集可以安装在系统中。

Restore control files from the liblpp.a archive library file into the 软件包目录 (/usr/lpp/软件包名称 for 我们 or usr/root packages. 特别针对 usr/root 软件包的 root 部分的控制文件在 /usr/lpp/Package_Name/inst_root/liblpp.a 中)。

检查磁盘空间需求。

检查所需的必备条件(使用或安装另一个文件集所需的特定级别的文件集)是否已安装或在将要安装的文件集的列表中。

确定是否存在这样的许可协议需求,即只有满足这些需求才能执行安装。

如果这是安装软件包而不是文件集更新软件包,请搜索软件重要产品数据 (SWVPD) 以查看 Fileset(正被安装的文件集)或任何在 Fileset.namelist 文件中列示的文件集是否已经以任意级别安装在系统中。 如果 Fileset 已安装,那么将该文件集的名称和已安装的级别写入 Work_Directory/Fileset.installed_list 文件中。如果没有安装任何级别的 Fileset,那么在安装 Fileset.namelist 文件中列示的任何文件集后,就会在 Work_Directory/Fileset.installed_list 文件中列示所有这些文件集和级别。 工作目录与软件包目录相同,但 "根基部分除外,它使用 "/lpp/"软件包名称。

如果这是一个安装软件包而不是文件集更新软件包,那么请运行 /usr/lib/instl/rminstal 脚本来对每个要安装的文件集执行以下操作。注意:除非另有说明,否则检查是否存在的文件必须是从liblpp.a控制文件库中恢复的。

如果 Fileset.pre_rm 存在,那么运行 Fileset.pre_rm 来执行在从该版本或现有版本的 Fileset 中除去任何文件之前所需的步骤。

如果 Work_Directory/Fileset.installed_list 存在,那么将 Fileset.cfgfiles 中列示的现有文件移动到配置文件保存目录中(由环境变量 MIGSAVE 表示)。

如果某个版本的 Fileset 已安装,那么除去 Fileset 中的文件和 SWVPD 信息(历史记录除外)。

如果 "工作目录/"文件集".installed_list存在,并且 "文件集".rm_inv"存在,或者 "文件集。""列表"包含多个文件集,或者 "文件集".namelist中列出的唯一文件集是bos.obj然后执行以下操作:

除去在文件 Fileset.rm_inv 中列示的文件和这些文件的 SWVPD 清单信息。

除去在文件 Fileset.inventory 中列示的文件和这些文件的 SWVPD 清单信息。

除去 Fileset.namelist 中列示的不再具有任何 SWVPD 清单信息的任何文件集的其他 SWVPD 信息。

如果 Work_Directory/Fileset.installed_list 存在,其中只含有一个文件集,且 Fileset.namelist 过去只包含一个文件集,那么除去该文件集的文件和 SWVPD 信息(历史记录除外)。

对于产品软件包的每个部分(仅 usr 部分或后面跟有 root 的 usr 部分)

设置 INUTREE(U 表示 usr,M 表示 root)和 INUTEMPDIR(创建的临时工作目录环境变量的名称。

如果 instal 控制程序存在于软件包目录中(不推荐),请运行 ./instal,否则运行缺省的脚本 /usr/lib/instl/instal。 如果 instal 控制程序不存在于软件包目录中,请设置环境变量 EDIR。

如果 update 控制程序存在于软件包目录中(不推荐),请运行 ./update。 如果 update 控制程序不存在于软件包目录中,请运行缺省的脚本 /usr/lib/instl/update。

如果状态文件已由 instal 或 update 成功创建,请使用状态文件来确定每个文件集的成功或失败。 如果某个状态文件还未创建,那么假定软件包中所有请求的文件集均未能应用。

如果对文件集应用操作成功,请更新软件重要产品数据 (SWVPD),然后注册任何关联的许可协议需求。 如果对文件集应用操作不成功,请运行 /usr/lib/instl/cleanup,或从软件包目录中运行软件包提供的 lpp.cleanup,以清除失败的文件集。

缺省安装或更新脚本的处理

可执行文件 instal 或 update 将通过 installp 调用,且命令的第一个参数是要用于安装或更新的设备。 第二个参数是包含要安装或更新的一组文件集的文件的全路径名,以下引用为 $FILESETLIST。 缺省的 instal 和 update 脚本是链接在一起的;根据它是作为 instal 还是 update 调用而在处理上有所不同。当前目录是软件包目录。 在 /tmp 中创建了一个临时目录 INUTEMPDIR 用于保存工作文件。

缺省的 instal 和 update 脚本中的流程如下:

对在 $FILESETLIST 中列示的每个文件集执行以下操作:

如果文件集是更新,那么执行 Fileset.pre_u (pre_update)(如果它存在的话)。 如果文件集不是更新,那么执行 Fileset.pre_i (pre_installation)(如果它存在的话)。

构建一个通过将 Fileset.al 追加到新文件 INUTEMPDIR/master.al 要从软件包恢复的文件的主列表。

如果这是一个更新,那么这些文件会指定为保存,并且归档控制文件 lpp.acf 存在。保存并关闭正在更新的库归档成员。

如果处理成功,那么将该文件集追加到要安装在 $FILESETLIST.new 文件中的列表。

如果这是一个更新,并且指定了文件保存,请运行 inusave 以保存该文件的当前版本。

如果处理的是 root 部分,请运行 inucp 将文件从应用列表复制到 root 部分。 如果不处理根目录部分,请运行inurest从应用列表中恢复 "usr部分的文件。

请为 $FILESETLIST.new 文件中列示的每个文件集执行以下操作:注意:任何步骤的失败都会记录在状态文件中,该文件集的处理也随之结束

确定该文件集是否已经以相同的或更旧的级别安装,或者在 Fileset.namelist 中列示的文件集是否已安装。 如果是的话,请导出环境变量 INSTALLED_LIST 和 MIGSAVE。 这称为迁移。

如果处理的是一个更新,请调用 Fileset.post_u(如果它存在)。 如果 Fileset.post_u 不存在,那么调用 Fileset.post_i(如果它存在)。

如果 Fileset.cfgfiles 存在,请运行 /usr/lib/instl/migrate_cfg 以根据指定的处理方法来处理配置文件。

调用 sysck 将 Fileset.inventory 文件中的信息添加到软件重要产品数据库 (SWVPD)。

Invoke the tcbck command to add the trusted computing base information to the system if the 文件集.tcb file exists and the trusted computing base 已启用 attribute is set in the /usr/lib/objrepos/PdAt ODM database.

如果Fileset.err存在,调用errupdate添加错误模板。

如果存在Fileset.trc,则调用trcupdate添加跟踪报告格式模板。

如果更新或 Work_Directory/Fileset.installed_list 存在,请调用每个 Fileset.odmdel 和 Fileset.*.odmdel 脚本来处理 ODM 数据库删除命令。

在每个现有的Fileset.odmadd和Fileset.*.odmadd上调用odmadd,将信息添加到ODM数据库。

如果这是一个更新,请调用 Fileset.config_u(文件集配置更新)(如果它存在)。 否则,请调用 Fileset.config(文件集配置)(如果它存在)。

更新表明文件集成功处理的状态文件。

将文件集除去操作所需的控制文件链接到软件包的 deinstl 目录,以备将来使用。 这些文件包含了以下可能出现在软件包目录中的文件:

lpp.deinstal

文件集。 al

文件集。 清单

文件集。 预_d

文件集。 非预_i

文件集。 未预见到

文件集。 未张贴i

文件集。 未发帖

文件集。 unodmadd

文件集。 unconfig

文件集。 未配置

$SAVEDIR/Fileset. *.rodmadd

SAVEDIR/Fileset. *.unodmadd

拒绝和清除操作的处理

此部分描述在文件集更新被拒绝之后,或文件集或文件集更新未能完成安装之后,installp 命令采取的步骤。 缺省的 cleanup 和 reject 脚本在 /usr/lib/instl 中,它们是链接在一起的。 根据脚本是作为拒绝还是清除而调用的,它们在逻辑上稍有差异。 对于 usr/root 部分的文件集或文件集更新,root 部分在 usr 部分之前处理。

如果被拒绝,请检查必备条件以确保所有相关产品更新同样被拒绝。

对于软件包的每一个部分(例如,usr 和 root 部分):

设置 INUTREE(U 表示 usr,M 表示 root。) 和 INUTEMPDIR 环境变量。

如果 reject 控制文件存在于当前目录中 (INULIBDIR),请调用 ./lpp.reject。 否则,请调用缺省脚本 /usr/lib/instl/reject。

更新软件重要产品数据。

可执行文件 reject 将通过 installp 调用,命令的第一个参数未定义,第二个参数是包含被拒绝进行更新的一组文件集的文件的全路径名(以下引用为 $FILESETLIST)。

以下文件由缺省的清除和拒绝脚本引用。

缺省的清除和拒绝脚本中的流程如下所示:

对在 $FILESETLIST 中列示的每个文件集执行以下操作:

如果是作为清除调用的,那么读取状态文件 Package_Name.s 以确定安装在哪步上失败,然后跳到前面以撤销该步的操作。 清除操作只能从安装失败的那个步骤上开始。 例如,如果文件集的安装在Fileset.post_i脚本中失败,那么该文件集的清理操作将从第 i 步开始,因为安装的后续步骤中没有可撤销的操作。

撤销任何在安装期间执行的配置处理:如果拒绝了一个更新,请调用 Fileset.unconfig_u(如果它存在)。 否则,请调用 Fileset.unconfig(如果它存在)。

运行任意 Fileset.*.unodmadd 和/或 Fileset.unodmadd 文件来除去在安装期间添加的对象数据管理器 (ODM) 条目。

运行任何存在的 Fileset.*.rodmadd 和/或 Fileset.rodmadd 来替换在安装期间删除的 ODM 条目。

如果存在 "文件集".undo.trc,则调用 "trcupdate,以撤销安装过程中对跟踪格式模板所做的任何更改。

如果存在Fileset.undo.err,则调用errupdate以撤销安装过程中对错误格式模板所做的任何更改。

如果存在 "文件集".tcb文件,且在 "/usr/lib/objrepos/PdAt"ODM数据库中设置了可信计算基础属性 "已启用,则调用 "tcbck删除系统中的可信计算基础信息。

如果存在Fileset.invent,则调用sysck以撤销对软件信息数据库的更改。

撤销任何在安装期间执行的后安装处理:如果这是一个更新,请调用 Fileset.unpost_u(如果它存在)。 否则,请调用 Fileset.unpost_i(如果它存在)。

从 "文件集".al文件建立主应用列表(称为 "master.al)。

将 Fileset 添加到 $FILESETLIST.new 中。

如果 $INUTEMPDIR/master.al 存在,请执行以下操作。

将目录更改为/(root)。

除去 master.al 中的所有文件。

在读取 $FILESETLIST.new 时执行以下操作。

调用 inurecv 以恢复所有保存的文件。

如果这是一个更新,请调用 Fileset.unpre_u(如果它存在)。 否则,请调用 Fileset.unpre_i(如果它存在)。

删除安装/更新控制文件。

除去状态文件 Package_Name.s。

除去操作的处理

此部分描述在文件集被除去之后 installp 命令采取的步骤。 对于 usr/root 部分的文件集或文件集更新,root 部分在 usr 部分之前处理。

检查必备条件以确保所有相关文件集也已除去。

对于产品软件包的每一个部分(例如,usr 或 root 部分):

设置 INUTREE(U 表示 usr,M 表示 root,S 表示 share)和环境变量 INUTEMPDIR(/tmp 中生成的工作目录 installp)。

将目录切换为 INULIBDIR。

如果控制文件 deinstal 存在于当前目录中,请运行./lpp.deinstal 脚本。 如果控制文件 deinstal 不存在于当前目录中,请运行缺省脚本 /usr/lib/instl/deinstal。

从文件系统中除去该文件集中的文件。

从 SWVPD 中除去文件集条目(历史数据除外)。

取消激活文件集的许可协议需求的注册。

可执行文件 deinstal 将通过 installp 调用,第一个参数是包含要除去的一组文件集的文件的全路径名,以下引用为 $FILESETLIST。

缺省的 deinstal 脚本中的流程如下所示:

对在输入文件 $FILESETLIST 中列示的每个文件集执行以下操作:

如果 Fileset.unconfig_d 存在请执行 Fileset.unconfig_d 来除去所有的配置更改、对象数据管理器 (ODM) 更改,以及错误和跟踪格式更改,并撤销安装后和安装前脚本中对所有的更新和基础级别安装所执行的全部操作。 不建议使用该文件。

如果 Fileset.unconfig_d 不存在,

对于该文件集中的每一个更新,执行以下操作:

运行全部 Fileset.unconfig_u 脚本以撤销所有的更新配置处理。

运行全部 Fileset.*.unodmadd 和 Fileset.unodmadd 以删除更新期间添加的对象数据管理器 (ODM) 条目。

运行全部 Fileset.*.rodmadd 和 Fileset.rodmadd 以添加更新期间删除的对象数据管理器 (ODM) 条目。

如果存在Fileset.undo.err则运行errupdate以撤销错误日志模板更改。

如果存在Fileset.undo.trc,则运行trcupdate以撤销跟踪报告模板更改。

运行任意 Fileset.unpost_u 以撤销所有的安装后定制。

对于文件集基础安装级别,请执行以下操作:

运行任意 Fileset.*.unodmadd 和/或 Fileset.unodmadd 文件来删除在安装期间添加的对象数据管理器 (ODM) 条目。

运行任意 Fileset.*.rodmadd 和/或 Fileset.rodmadd 以添加安装期间删除的对象数据管理器 (ODM) 条目。

如果存在Fileset.undo.err则运行errupdate以撤销错误日志模板更改。

如果存在Fileset.undo.trc,则运行trcupdate以撤销跟踪报告模板更改。

运行 Fileset.unconfig_i 来撤销所有的安装配置处理。

运行任意 Fileset.unpost_i 以撤销所有的文件安装后定制。

除去与该文件集一起安装的文件和软件数据信息。

如果 Fileset.unconfig_d 不存在,

对于该文件集中的每个更新,运行任意 Fileset.unpre_u 以撤销所有的文件安装前定制。

对于该文件集基础安装级别,运行任意 Fileset.unpre_i 以撤销所有的文件安装前定制。

删除所有与该文件集关联的空目录。注意:如果在执行卸载可执行文件的过程中,某个调用返回错误,该错误将被记录,但执行仍将继续。 这与其他的脚本不同,因为该文件集的执行一般在遇到错误时会被取消。 但是,一旦文件集的除去操作开始,那么不存在恢复;因此,一旦发现错误,除去操作将有最好的效果。

安装状态文件

$INUTEMPDIR/status

对每个要安装或更新的文件集包含一个占用一行的条目的文件

installp 命令使用该状态文件来确定合适的处理。 如果您要创建安装脚本,那么您的脚本应生成一个格式正确的状态文件。 该状态文件中的每一行都具有以下格式:

表 10. StatusCode 文件集

状态码

含义

成功,更新 SWVPD

f

失败,执行清除过程

绕过,已失败,无需清除

i

必备条件失败,无需清除

v

sysck 验证失败

以下状态文件的例子向 installp 命令表明软件包 bos.net 中的文件集 tcp.client 和 tcp.server 的安装已成功,但文件集 nfs.client 的安装则未成功。

s bos.net.tcp.client

s bos.net.tcp.server

f bos.net.nfs.client

安装和更新处理期间使用的安装命令

inucp

在安装 root 部分时将文件从 /usr/lpp/Package_Name/inst_root 目录复制到 / (root) 文件树。

inulag

作为子例程的前端来管理许可协议。

inurecv

为安装失败或软件拒绝恢复保存的文件 (installp -r)。

inurest

将应用列表用作输入,将文件从分发介质恢复到系统。

inusave

将所有由应用列表指定的文件保存到软件产品的保存目录中。

inuumsg

针对正在安装的软件产品,从 inuumsg.cat 消息目录文件中发出消息。

ckprereq

使用 lpp_name 文件中提供的必备条件信息和 SWVPD 中找到的已安装产品的有关信息来验证软件产品与任何相关软件的兼容性。

sysck

在安装和更新过程中检查清单信息。

sysck 命令在 /usr/bin 目录中。 前面列示的其他命令在 /usr/sbin 目录中。

有关这些用途的示例,请参阅缺省安装脚本 /usr/lib/instl/instal。

相关推荐

安全验证

安全验证

10-24 💫 7733
鱼生完小鱼多久还会生(鱼大概多长时间生小鱼)
stk是哪个国家的 printf
苹果手机通话录音方法

本文标签