Ebuild 阶段函数

从源安装软件包时,函数调用顺序为 pkg_pretendpkg_setupsrc_unpacksrc_preparesrc_configuresrc_compilesrc_test(可选,FEATURES ="test"),src_installpkg_preinstpkg_postinst。从二进制文件安装软件包时,函数调用顺序为 pkg_pretendpkg_setuppkg_preinstpkg_postinst。由于尚未从一开始就引入某些阶段,因此您可以查看EAPI 使用和描述以获取概述,其中介绍了在哪个 EAPI 中引入了哪些内容。

ebuild 阶段函数的处理流程

pkg_pretend 函数将用于执行各种早期的完整性检查,例如确保启用了某些内核选项。重要的是要记住,pkg_pretend 与其余阶段功能序列分开运行。因此,没有节省环境或传播到下一阶段。此外,在此阶段不能保证满足 ebuild 依赖关系。

卸载软件包时,将调用 pkg_prermpkg_postrm 函数。 pkg_config 函数用于任何特殊的软件包配置——仅在用户明确请求时运行。当 RESTRICT ="fetch"包需要获取某些 SRC_URI 组件时,将使用 pkg_nofetch 函数。

在从 pkg_preinstpkg_postinst 的过渡之间,文件从 沙盒 临时安装位置复制到活动文件系统,并且 Portage 记录已安装文件的摘要。

在测试或调试时,可以使用 ebuild 命令指示 Portage 从 ebuild 执行特定功能,有关更多信息,请参见 ebuild(1)手册页。

下载软件包的源代码是在上述任何一个阶段之前进行的,因此,emerge --fetchonly 应该执行您需要的所有网络访问(除非您正在使用实时 ebuild)。超出此范围的网络访问将不会在本地缓存(例如,在${DISTDIR}中,请参阅预定义的只读变量),这使得很难生成可复制的内部版本(请参见 VCS Sources 的缺点)。通过使用本地文件,扩展 SRC_URI(请参阅 Ebuild 定义变量)等,避免在任何阶段进行网络访问。

默认阶段函数是:

缺省pkg_nofetchsrc_*阶段函数可通过名称以default_开头并以相应阶段函数名结尾的函数访问。例如,对名称为default_src_compile的函数的调用等效于对默认src_compile实现的调用。

默认阶段函数:

  • default_pkg_nofetch
  • default_src_unpack
  • default_src_prepare
  • default_src_configure
  • default_src_compile
  • default_src_test
  • default_src_install

在上述每个阶段都重新定义了一个名为default的函数,因此它将调用与当前阶段相对应的default_*函数。例如,在src_compile阶段对默认函数的调用等效于对default_src_compile函数的调用。

内容

results matching ""

    No results matching ""