【问题标题】:Yocto project rabbitmq-server recipe buildYocto 项目 rabbitmq-server 配方构建
【发布时间】:2020-08-17 15:20:20
【问题描述】:

我想将 rabbitmq-server 配方添加到我的 yocto 项目中。如http://layers.openembedded.org/ 所述,rabbitmq-server 是 meta-cloud-service/meta-opestack 层的一部分。我已经在我的项目中克隆了该层并将所需的路径添加到 bblayers.conf。 现在,当我尝试通过 bitbake rabbitmq-server 命令构建 rabbitmq-server 配方时,我得到以下错误响应:

警告:base-files-3.0.14-r89 do_fetch:获取 URL 失败 file://nsswitch.conffile://print_issue.sh,尝试镜像如果 可用的错误:base-files-3.0.14-r89 do_fetch:提取失败: 找不到文件 file://nsswitch.conffile://print_issue.sh 任何地方。

错误:base-files-3.0.14-r89 do_fetch:URL 提取失败: 'file://nsswitch.conffile://print_issue.sh'。无法从中获取 URL 任何来源。错误:base-files-3.0.14-r89 do_fetch:函数失败: base_do_fetch

谁能帮我解决这个问题?

【问题讨论】:

    标签: rabbitmq yocto bitbake


    【解决方案1】:

    多个层正在修改基本文件配方,它们一起把它弄得一团糟。

    meta-openstack SRC_URI modifications 用这个

    SRC_URI += "file://nsswitch.conf"
    

    这将确保在添加的字符串之前添加一个空格,但不会在字符串之后留下空格(例如原始基本文件配方)。

    在这之后可能会有另一层

    SRC_URI_append = "file://print_issue.sh \
                     "
    

    或类似的东西,假设 SRC_URI 的末尾有一个空格,并且 URL 被混合在一起。应修复其中一项或两项配方修改,以免发生这种情况。

    【讨论】:

    • 嗨,Jussi,谢谢。 base_file 错误已经消失,但现在它为 rabbitmq 配方提供了一些 oe_runmake 错误。错误如下:
    • 日志数据如下:|调试:执行 shell 函数 do_compile |注意:make -j 4 | Makefile:379: deps.mk: 没有这样的文件或目录 | python codegen.py body codegen/amqp-rabbitmq-0.9.1.json codegen/credit_extension.json src/rabbit_framing_amqp_0_9_1.erl | python codegen.py 正文 codegen/amqp-rabbitmq-0.8.json src/rabbit_framing_amqp_0_8.erl | xsltproc --novalid --stringparam 模块名 "basename src/rabbit_ctl_usage.erl .erl" \ | docs/usage.xsl docs/rabbitmqctl.1.xml > src/rabbit_ctl_usage.erl.tmp
    • | xsltproc --novalid --stringparam 模块名 "basename src/rabbit_plugins_usage.erl .erl" \ | docs/usage.xsl docs/rabbitmq-plugins.1.xml > src/rabbit_plugins_usage.erl.tmp | sed -e 's/"/\\"/g' -e 's/%QUOTE%/"/g' src/rabbit_plugins_usage.erl.tmp > src/rabbit_plugins_usage.erl.tmp2 | sed -e 's/" /\\"/g' -e 's/%QUOTE%/"/g' src/rabbit_ctl_usage.erl.tmp > src/rabbit_ctl_usage.erl.tmp2 |折叠-s src/rabbit_plugins_usage.erl.tmp2 > src/rabbit_plugins_usage.erl.tmp3 |折叠 -s src/rabbit_ctl_usage.erl.tmp2 > src/rabbit_ctl_usage.erl.tmp3
    • /bin/sh: 1: 折叠: 未找到 | /bin/sh: 1: 折叠: 未找到 | Makefile:306: 目标 'src/rabbit_plugins_usage.erl' 的配方失败 |制作:*** [src/rabbit_plugins_usage.erl] 错误 127 | make: *** 等待未完成的工作.... | Makefile:306: 目标 'src/rabbit_ctl_usage.erl' 的配方失败 |制作:*** [src/rabbit_ctl_usage.erl] 错误 127 |错误:oe_runmake 失败 |警告:从 shell 命令退出代码 1。
    • 这是一个完全不相关的错误。快速查看 meta-openstack rabbitmq-server recipe 表明该问题已在 2.5 年前得到修复......
    【解决方案2】:

    我使用 RabbitMQ,但没有设法将它安装在 meta-openstack 中。 我确实使用meta-erlang 安装了所有需要的组件 请注意,您应该调整 erlang 和 elixir 的版本,例如在 build/local.conf 中遵循代码

    PREFERRED_VERSION_erlang = "22%" #instead of latest v.23
    PREFERRED_VERSION_erlang-native = "22%"
    
    PREFERRED_VERSION_elixir = "1.10.0"
    PREFERRED_VERSION_elixir-native = "1.10.0"
    

    即使在已经相当过时的 Yocto 2.6 Thud 上,我也设法安装和使用了 RabbitMQ-server v3.8.21-r1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-17
      • 2020-07-14
      • 1970-01-01
      • 2020-11-28
      • 2020-06-08
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多