4文件下载支持

BitBake 的 fetch 模块负责处理从远程系统下载源代码和文件的复杂任务,包括下载、解包、抓取器等功能。它支持多种协议,如 Git、SVN、CVS 等,并使用预镜像、源 URI 和镜像站点进行源文件查找。解包过程处理多种文件类型,并且支持 Git 的特殊解包方法。fetcher 子模块根据 URL 前缀决定使用哪种方法,如本地文件提取器、HTTP/FTP wget fetcher、CVS 和 SVN fetcher 等。此外,fetch 模块还提供了缓存管理和校验和验证,确保文件的完整性和一致性。
摘要由CSDN通过智能技术生成

4文件下载支持

目录

4文件下载支持

4.1下载(Fetch)

4.2解包

4.3抓取器

4.3.1本地文件提取器 ( file://)

4.3.2 HTTP/FTP wget fetcher ( http://, ftp://, https://)

4.3.3 CVS fetcher ( (cvs://)

4.3.4 Subversion (SVN) Fetcher ( svn://)

4.3.5 Git Fetcher ( git://)

4.3.6 Git 子模块提取器 ( gitsm://)

4.3.7 ClearCase Fetcher ( ccrc://)

4.3.8 Perforce Fetcher ( p4://)

4.3.9 Repo Fetcher ( repo://)

4.3.10 Az Fetcher ( az://)

4.3.11其他抓取器

4.4自动修订


BitBake 的 fetch 模块是一段独立的库代码,用于处理从远程系统下载源代码和文件的复杂性。获取源代码是构建软件的基石之一。因此,该模块构成了 BitBake 的重要组成部分。

当前的 fetch 模块称为“fetch2”,指的是它是 API 的第二个主要版本。原始版本已过时并已从代码库中删除。因此,在所有情况下,“fetch”在本手册中均指“fetch2”。

4.1下载(Fetch)

BitBake 在获取源代码或文件时需要执行几个步骤。fetcher 代码库按顺序处理两个不同的过程:从某处(缓存或其他方式)获取文件,然后将这些文件解压缩到特定位置,也许以特定方式。获取和解压文件后通常可选地进行修补。但是,此模块不包括修补。

执行这个过程的第一部分的代码,一个 fetch,看起来像下面这样:

src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()

此代码设置 fetch 类的实例。该实例使用来自SRC_URI 变量的以空格分隔的 URL 列表,然后调用该download方法来下载文件。

fetch 类的实例化后通常是:

rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)

此代码将下载的文件解压缩到指定的WORKDIR.

注意

为方便起见,这些示例中的命名与 OpenEmbedded 使用的变量相匹配。如果您想查看上述代码的实际效果,请检查 OpenEmbedded 类文件base.bbclass 。

SRC_URIWORKDIR变量没有硬编码到取出器,因为这些提取器的方法可以(是)调用不同的变量名。例如,在 OpenEmbedded 中,共享状态 (sstate) 代码使用 fetch 模块来获取 sstate 文件。

download()调用该方法时,BitBake 尝试通过按特定搜索顺序查找源文件来解析 URL:

  • 预镜像站点: BitBake 首先使用预镜像来尝试查找源文件。这些位置是使用PREMIRRORS变量定义的 。

  • 源 URI:如果预镜像失败,BitBake 使用原始 URL(例如来自SRC_URI)。

  • 镜像站点:如果发生获取失败,BitBake 接下来使用由MIRRORS变量定义的镜像位置。

对于传递给 fetcher 的每个 URL,fetcher 调用处理该特定 URL 类型的子模块。当您为SRC_URI变量提供 URL 时,这种行为可能会导致一些混乱。考虑以下两个 URL:

http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http

在前一种情况下,URL 被传递给wget不理解“git”的fetcher。因此,后一种情况是正确的形式,因为 Git fetcher 确实知道如何使用 HTTP 作为传输。

以下是一些显示常用镜像定义的示例:

PREMIRRORS ?= "\
   bzr://.*/.\*  http://somemirror.org/sources/ \\n \
   cvs://.*/.\*  http://somemirror.org/sources/ \\n \
   git://.*/.\*  http://somemirror.org/sources/ \\n \
   hg://.*/.\*   http://somemirror.org/sources/ \\n \
   osc://.*/.\*  http://somemirror.org/sources/ \\n \
   p4://.*/.\*   http://somemirror.org/sources/ \\n \
  svn://.*/.\*   http://somemirror.org/sources/ \\n"

MIRRORS =+ "\
   ftp://.*/.\*   http://somemirror.org/sources/ \\n \
   http://.*/.\*  http://somemirror.org/sources/ \\n \
   https://.*/.\* http://somemirror.org/sources/ \\n"

值得注意的是,BitBake 支持跨 URL。可以将 HTTP 服务器上的 Git 存储库镜像为 tarball。这就是git://前面示例中的映射所做的。

由于网络访问速度较慢,BitBake 维护了从网络下载的文件的缓存。任何非本地源文件(即从 Internet 下载)都放置在下载目录中,该目录由DL_DIR变量指定。

文件完整性对于复制构建至关重要。对于非本地存档下载,fetcher 代码可以验证 SHA-256 和 MD5 校验和,以确保存档已正确下载。您可以通过使用带有适当 varflags的SRC_URI变量来指定这些校验和,如下所示:

SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"

您还可以将校验和指定为SRC_URI上的参数,如下所示:

SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"

如果存在多个 URI,您可以像前面的示例一样直接指定校验和,也可以命名 URL。以下语法显示了如何命名 URI:

SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d

下载文件并检查其校验和后,将在DL_DIR 中放置一个“.done”标记。BitBake 在后续构建期间使用此戳记,以避免再次下载或比较文件的校验和。

注意

假设本地存储不会损坏数据。如果不是这种情况,就会有更大的问题需要担心。

如果设置了BB_STRICT_CHECKSUM,则任何没有校验和的下载都会触发错误消息。该 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用UE4时,帮助文档是非常重要的参考资料之一,但有些情况下我们无法访问到网络,比如在地铁、火车上,或者在没有网络的场所。这时就需要进行UE4帮助文档的离线下载。 首先,我们需要进入UE4软件中,找到帮助文档的入口。一般在右上角的“?”符号处,点击后,会跳转到帮助文档的网页。 接下来,在帮助文档的网页上,我们可以看到右上角的“下载离线版”按钮,点击后会弹出下载地址。将地址复制下来,进行下载。 完成下载后,需要将解压后的文件夹命名为“UE4_Documentation”,并将该文件夹放置在本地硬盘的合适位置。然后打开UE4软件,在“编辑器首选项”的“文档”选项卡中,点击“浏览”按钮,选择刚刚下载的“UE4_Documentation”文件夹,即可完成离线文档的设定。 最后,在使用UE4时,当需要查看帮助文档时,可以在软件菜单中选择“帮助-文档”,即可查看到刚才离线下载的帮助文档。 总的来说,UE4的帮助文档离线下载十分方便,只需要在网页上进行下载,并进行相应的设定即可。离线文档的查询也比网页版更加便捷和快速,而且避免了无网络的不便。 ### 回答2: 在使用UE4进行游戏开发时,经常需要查阅UE4帮助文档以学习相关知识和解决问题。但是,如果没有网络连接,或者网络连接质量不佳,访问在线帮助文档可能会受到限制。为了解决这一问题,UE4提供了离线下载帮助文档的功能。 要下载UE4帮助文档,首先需要打开UE4编辑器,在菜单栏中选择“编辑器首选项”(Editor Preferences),然后在左侧导航栏中选择“文档”(Documentation)选项卡。在文档选项卡中,你可以看到一个“下载离线文档”(Download Offline Documentation)的按钮,点击该按钮即可进行离线下载。 下载完成后,你可以在本地文件夹中找到所有的帮助文档。注意,由于文档十分庞大,下载可能会需要较长时间,并且会占用一定的磁盘空间。因此,建议仅在必要时才进行下载。 离线下载的帮助文档可以随时查阅,不受网络环境的限制。如果需要更新文档,请重新进行下载,并将旧版本的文档删除。总的来说,UE4提供了离线下载文档的功能,帮助开发者在任何时间和任何地点都能够更好地学习和使用UE4引擎。 ### 回答3: 对于有些UE4的用户来说,帮助文档的离线下载是非常必要的。UE4的帮助文档非常丰富,涵盖了许多方面的知识,从开发者工具到游戏设计,每个人都可以找到相关的信息。 然而,因为各种原因,有时不便在线访问,因此将其下载为离线文档的需求变得更加严峻。 幸运的是,UE4为用户提供了离线下载的选项。用户可以在文档内使用离线下载选项,以便下载并保存整个文件。为了进行离线下载,用户需要首先转到使用的文档页面,然后单击页面顶部的“离线文档”按钮。 一旦单击“离线文档”按钮,将会打开一个新的窗口,其中包含用于下载整个文档的选项和链接。可以选择下载ZIP压缩文件或使用专门的离线文档应用程序,在没有互联网连接的情况下访问文档。离线文档应用程序支持Windows、Mac和Linux操作系统,使用户可以使用在任何设备上使用离线文档。 总之,UE4的帮助文档离线下载提供了好处,允许用户在任何地方访问它们。欲了解更多有关UE4的帮助文档离线下载的详细信息,用户可以在文档页面上查找相关的链接和信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值