我想创建一个简单的(?)软件分发(包/SD-UX),其中包含一个简单的 hello world shell 脚本,而不使用 hpux 出于 CI/CD 原因提供的任何工具。
我从最新的 cURL 软件仓库手工复制了这个布局,chmodded 到 root:sys,并存档,tar -C helloworld-hpux -czvf helloworld-7.6.6.depot.tar.gz .
但是当我安装它时,我得到一个 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
我该如何解决?
除非
swinstall
在过去 5 年左右得到增强,否则我认为它无法读取 gzipped.depot.gz
。你必须gunzip
提供一个简单的.depot
.据我所知,INDEX 文件是一组层次结构的序列化:您应该查看
swpackage(4)
手册页并将 INDEX 文件的结构与描述的包规范文件 (PSF) 的结构进行比较。INDEX 文件有更多元素,但整体结构应该相似。看起来
helloworld-hpux/catalog/INDEX
缺少product
一行。换句话说:应该是:
media
在 PSF 语法中不存在,但它可能标识包含软件分发的各个部分的各种磁带/CD/其他媒体,如果有多个,因此它可能是 INDEX 语法中的一个子容器,包含任意数量的product
子- 子容器。即使在 PSF 中,也必须至少有一个
product
容器,并且tag
、control_directory
、revision
和title
都适用product
于 PSF 语法。data_model_revision
并且instance_id
没有直接记录在 PSF 中,但它们在swpackage(4)
手册页product
或bundle
级别上下文中有所提及。稍后,您有一个subproduct
,它必须是 的子容器product
。