UNPACKER.ECLASS
章节: eclass-manpages (5)更新: 2024年11月
索引 返回主内容
名称
unpacker.eclass - 针对额外文件格式和跨 EAPI 的一致行为的辅助函数描述
一些额外文件格式不是 PMS 的一部分,或者仅存在于某些 EAPI 中。与其担心这个问题,不如在这里和所有 EAPI 版本中都支持这些奇怪的东西。支持的 EAPI
7 8函数
- unpack_pdv <要解压的文件> <off_t 的大小>
- 解压那些讨厌的 pdv 生成的文件...它们是自解压程序,二进制包塞在归档文件的中间。Valve 似乎经常使用它...可惜它似乎很喜欢段错误 :(。所以让我们自己把它拆开。
您必须指定 off_t 的大小...我不知道如何从二进制可执行文件中提取该信息。基本上,您传递构建 pdv 归档文件的机器上 off_t 类型的大小(以字节为单位)。
确定此大小的一种方法是运行以下命令
strings <pdv archive> | grep lseek strace -elseek <pdv archive>
基本上查找第一个 lseek 命令(我们使用 strings/grep 因为有时函数调用是 _llseek 或其他什么),并获取第二个参数。以下是一个示例
$ strings hldsupdatetool.bin | grep lseek lseek $ strace -elseek ./hldsupdatetool.bin lseek(3, -4, SEEK_END) = 2981250
因此,我们将 '4' 的值作为第二个参数传递。
- unpack_makeself [要解压的文件] [偏移量] [tail|dd]
- 解压那些讨厌的 makeself 生成的文件...它们是 shell 脚本,二进制包附加在归档文件的末尾。Loki 使用这种格式,许多其他游戏公司也使用。
如果未指定文件,则使用 ${A}。如果未指定偏移量,我们将尝试从脚本本身提取正确的偏移量。
- unpack_deb <要解压的一个 deb 文件>
- 以样式化的方式解压 Debian .deb 归档文件。
- unpack_cpio <要解压的一个 cpio 文件>
- 解压 cpio 归档文件,文件 "-" 表示标准输入。
- unpack_zip <zip 文件>
- 解压 zip 归档文件。此函数忽略所有非致命错误(即警告)。这对于附加了额外内容的 zip 归档文件(例如自解压归档文件)很有用。
- unpack_7z <7z 文件>
- 解压 7z 归档文件。
- unpack_rar <rar 文件>
- 解压 RAR 归档文件。
- unpack_lha <lha 文件>
- 解压 LHA/LZH 归档文件。
- unpack_gpkg <gpkg 文件>
- 动态解压 GPKG 包的 image 子归档文件,保留原始目录结构(即到 <gpkg-dir>/image)。
- unpacker [要解压的归档文件]
- 这与 `unpack` 的工作方式相同。如果您未指定任何文件,它将默认为 ${A}。
- unpacker_src_unpack
- 运行 `unpacker` 以解压所有内容。
- unpacker_src_uri_depends [我们将解压的归档文件]
- 遍历所有指定的文件(默认为 $SRC_URI)并找出解压所需依赖项。
注意:USE 标记尚未处理。
返回值:解压所有归档文件所需的依赖项
Eclass 变量
- UNPACKER_BZ2 (用户变量)
- 用于解压 bzip2 文件的实用程序。将在 `lbzip2`、`pbzip2` 和 `bzip2` 之间动态选择。确保您的选择接受 "-dc" 选项。注意:这是供用户设置的,而不是 ebuild。
- UNPACKER_LZIP (用户变量)
- 用于解压 lzip 文件的实用程序。将在 `xz`、`plzip`、`pdlzip` 和 `lzip` 之间动态选择。确保您的选择接受 "-dc" 选项。注意:这是供用户设置的,而不是 ebuild。
维护者
[email protected]报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug文件
unpacker.eclass参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/unpacker.eclass
索引
本文件由 man2html 使用手册页创建。
时间:2024年11月12日,格林威治标准时间03:27:01