src_unpack

函数 src_unpack
目的 提取源代码包。
沙箱 启用
权限 用户
调用者 ebuild

默认 src_unpack

src_unpack() {
	if [[ -n ${A} ]]; then
		unpack ${A}
	fi
}

示例 src_unpack

src_unpack() {
	unpack ${P}.tar.xz
	use foo && unpack ${P}-foo-extension.tar.xz
}

解压压缩包

应该使用 unpack 函数来解压压缩包、压缩文件等。请勿手动使用 targunzip 等。

${A} 变量包含所有 SRC_URI 组件,除了 SRC_URI 本身内部基于 USE 条件排除的任何组件。如果多个存档需要按特定顺序解压,通常避免使用 ${A} 会更简单。

已知文件格式

unpack 函数识别以下文件格式

  • *.tar
  • *.gz*.Z*.tar.gz*.tgz*.tar.Z
  • *.bz2*.bz*.tar.bz2*.tbz2*.tar.bz*.tbz
  • *.lzma*.tar.lzma
  • *.xz*.tar.xz*.txz
  • *.zip*.ZIP*.jar
  • *.a*.deb

在 EAPI 6 及更高版本中,文件名扩展名不区分大小写匹配。

src_unpack 操作

以下小节涵盖了编写 src_unpack 函数时经常遇到的不同主题。