【问题标题】:How to prevent bitbake from looking for mirrors for specific host?如何防止bitbake为特定主机寻找镜像?
【发布时间】:2017-10-02 07:39:24
【问题描述】:

我正在使用 yocto 构建一个系统映像,其中一些食谱引用托管在私有 git 存储库服务器上的软件(我们称之为 repo-host)。结帐工作正常,但 bitbake 总是尝试首先访问downloads.yoctoproject.org 镜像而不是我们自己的服务器。

在配方的log.do_fetch 中,可以在如下日志条目中看到此行为(主机名和存储库名称匿名,但其余部分保持不变):

DEBUG: Fetching http://downloads.yoctoproject.org/mirror/sources/git2_repo-host.path.to.the.repo.git..tar.gz using command
'/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/amu/projekte/yocto/motec-yocto/build/downloads 'http://downloads.yoctoproject.org/mirror/sources/git2_repo-host.path.to.the.repo.git..tar.gz''

问题: 有没有办法让 bitbake 全局避免只针对某些主机的镜像机制?如果没有,有没有办法按照食谱做到这一点?

理想情况下,对于以特定主机名(如git://repo-host/...)开头的 git URL 获取的所有源,不会联系镜像。所有其他来源(内核、gcc 等)仍应使用镜像。

【问题讨论】:

  • 很抱歉,细节不够清楚,但我认为提供的信息应该足以回答这样一个一般性问题。如果没有,我当然会修改问题:-)
  • 可以在conf文件中指定下载目录路径。下载源后,它总是会参考本地下载路径,而不是查看 yocto 镜像。

标签: git yocto bitbake


【解决方案1】:

这将是 PREMIRRORS 功能,您看到的 URL 可能来自您使用的发行版配置(例如 poky.conf)。如果不尝试这些外部预镜像对您很重要,您可以将 PREMIRRORS 的值设置(或预先添加)到本地下载站点或空字符串。您应该能够在您的发行版配置、本地配置或单个配方中执行此操作。

【讨论】:

  • 所以没有办法将 bitbake 配置为自动为所有从我们自己的 repo-host 获取源的食谱假定 PREMIRRORS=""?我将尝试在各自的配方中设置变量,因为我只想为我们自己的软件禁用镜像。如果没有更好的方法出现,将稍后尝试并接受:-)
  • 将您自己的预镜像添加为整个发行版的第一个有什么问题?
  • 我想保留所有原始配方的原始设置,但从不尝试从 yoctoproject 预镜像获取我们自己的软件(而不是设置我自己的镜像基础架构)。设置PREMIRRORS="" 不会简单地禁用所有配方的镜像,并且附加另一个预镜像不会避免我们自己的软件的预镜像吗?
  • 如果您需要 100% 确保 bitbake 永远不会尝试从 yoctoproject.org 获取您的软件,那么您可能需要在食谱中将 ​​PREMIRRORS 设置为空(或您自己的站点)或全球。将您的预镜像站点作为第一个站点也可以工作如果您可以保证预镜像始终具有正在获取的版本...否则 bitbake 可能会尝试 yoctoproject.org。
  • 谢谢!我在一个食谱中试过它,它有效。为方便起见,我添加了一个no_source_mirrors.bbclass,在其中将 (PRE)MIRRORS 设置为空字符串,并且由所有“私有”配方继承。如果您愿意,请随时将该选项添加到您的答案中:-)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 2011-01-12
  • 2023-03-21
  • 2023-02-12
  • 2022-11-01
  • 1970-01-01
  • 2013-02-18
相关资源
最近更新 更多