HP-UX swinstall 错误“源上的 INDEX 文件不存在或无法读取。”有一个手工制作的仓库

HP-UX swinstall 错误“源上的 INDEX 文件不存在或无法读取。”有一个手工制作的仓库

我想创建一个简单的(?)软件发行版(包/SD-UX),其中包含一个简单的 hello world shell 脚本没有出于 CI/CD 原因使用 hpux 提供的任何工具。

我有手工制作这个布局从最新的 cURL 仓库复制,chmodded 到 root:sys,并存档,tar -C helloworld-hpux -czvf helloworld-7.6.6.depot.tar.gz .但是当我进行 swinstalling 时,出现 I/O 错误。

swagentd 日志:

       * Registered RPC protocol "ncacn_ip_tcp" with endpoint "2121".
       * Registered RPC protocol "ncadg_ip_udp" with endpoint "2121".
       * Checking job queue at 1 minute intervals.
       * Started install agent on "/" for [email protected],
         pid=25798, 09/26/19 04:48:54 CDT
       * Started source agent on "/tmp/helloworld-7.6.6.depot.gz" for
         [email protected], pid=25799, 09/26/19 04:48:55 CDT
ERROR:   The INDEX file on the source did not exist or could not be
         read.
ERROR:   The target "/tmp/helloworld-7.6.6.depot.gz" could not be
         opened. pid=25799 09/26/19 04:48:55 CDT
       * Agent pid=25799 completed.  09/26/19 04:48:55 CDT
       * Agent pid=25798 completed.  09/26/19 04:48:55 CDT

我该如何修复它?

答案1

除非swinstall在过去 5 年左右得到增强,否则我认为它无法读取 gzipped .depot.gz.您必须gunzip它才能提供普通的.depot.

据我所知,INDEX文件是一组层次结构的序列化:您应该检查swpackage(4)手册页并将INDEX文件的结构与所描述的包规范文件(PSF)的结构进行比较。 INDEX 文件有更多元素,但整体结构应该类似。

看起来好像helloworld-hpux/catalog/INDEX少了product一行。换句话说:

...
media 
sequence_number 1
tag helloworld
data_model_revision 2.40
instance_id 1
control_directory helloworld
revision 7.66.0
title "helloworld"
...

大概应该是:

...
media 
sequence_number 1
product
tag helloworld
data_model_revision 2.40
instance_id 1
control_directory helloworld
revision 7.66.0
title "helloworld"
...

mediaPSF 语法中不存在,但它可能标识包含软件分发各个部分的各种磁带/CD/其他介质(如果有多个),因此它可能是 INDEX 语法中的一个子容器,其中包含任意数量的子product容器-子容器。

即使在PSF中,也必须至少有一个product容器,并且tag、 、control_directoryrevisiontitle都适用于productPSF语法。data_model_revisioninstance_id没有直接记录在 PSF 中,但在swpackage(4)手册页的productbundle级上下文中提到了它们。稍后,您将拥有一个subproduct,它必须是 的子容器product

相关内容