pkgtrans 命令
用途
转换软件包格式。
语法
描述
pkgtrans 命令将可安装的软件包从一种格式转换到另一种格式。 它转换下列格式:
- 从文件系统格式到数据流
- 从数据流到文件系统格式
无法从 csh运行 pkgtrans 。
标志
| 项 | 描述 |
|---|---|
| -i | 复制 pkginfo 和 Pkgmap 文件。 对于集合安装软件包 (SIPs),如果软件包类别被定义为“set”(请参见 setinfo 文件格式),那么软件包的 setinfo 文件也被复制。 |
| -o | 覆盖目标设备上的相同的实例。 如果包实例存在,那么将覆盖该包实例。 |
| -n | 在目标设备上创建新的软件包实例。 如果包实例存在于目标设备上,那么它将保持不变并创建新实例。 新实例具有连接的序号,以将其与现有实例区分开。 例如,假定目标设备已包含软件包 X的实例。 如果将 pkgtrans 与 -n 标志配合使用以将程序包 X 的新实例写入设备,那么程序包 X 的现有实例将保留在目标设备上,并且可以在设备上创建名为 X.2的新实例。 如果使用 -n 标志再次执行 pkgtrans ,那么将创建名为 X.3的第三个实例。 |
| -s | 指示必须将程序包作为数据流而不是作为文件系统写入 Device2 。 缺省行为是以文件系统格式写入 Device2 中。 |
| -z Blocksize | 指示传输到盒式磁带时要使用的块大小。 使用 -z 标志写入磁带的软件包以及不等于 512 的值始终使用块大小 32768 进行读取。 这样,当从盒式磁带上读取时 -z 标志是不能应用的。 |
| Device1 | 表示源设备。 可以是 - (连字符) ,用于指定从标准输入读取的数据流格式的包。 此设备上的软件包或软件包已翻译并放置在 Device2上。 如果 Device1 是常规文件或目录,您必须使用绝对路径名,而不是相对路径名。 |
| Device2 | 表示目标设备。 可以是-(连字符) ,用于指定以数据流格式写入标准输出的包。 已转换的软件包放在该设备上。 如果 Device2 是常规文件或目录,您必须指定它为绝对路径名,而不是相对路径名。 |
| 普金斯特 | 指定必须转换 Device1 上的包。 令牌 all 可用于指示所有软件包。 Pkginst.* 可以用来指示包的所有实例。 如果没有定义软件包,就会出现一个显示所有软件包的提示,并且询问哪一个将被转换。 如果要将集合传输到数据流格式,那么 Pkginst 自变量必须以 SIP 开头,并后跟在 SIP 的 setinfo 文件中列出的包 (按它们在该文件中的显示顺序)。 |
注: 缺省情况下,如果目标设备上存在包的任何实例,那么 pkgtrans 不会传输该包的任何实例。 如果存在此包的实例,那么使用 -n 标志将创建新实例。 使用 -o 标志将覆盖同一实例 (如果存在)。 如果目标设备是数据流,那么这两个标志都不有用,因为无论如何都会覆盖整个数据流。
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 脚本成功完成。 |
| 第 1 年 | 致命错误。 安装过程已终止。 |
文件
| 项 | 描述 |
|---|---|
| /usr/sbin/pkgtrans | 包含 pkgtrans 命令。 |
示例
- 要转换驱动器 Device 上的所有软件包并将翻译放在 /tmp中,请输入:
pkgtrans Device /tmp all - 要在
tmp中转换pkg1和pkg2并以数据流格式将它们放在 设备 上,请输入:pkgtrans -s /tmp Device pkg1 pkg2