【问题标题】:How to use a latest package version in a Yocto -older version?如何在 Yocto 旧版本中使用最新的软件包版本?
【发布时间】:2017-08-09 14:58:45
【问题描述】:

我正在使用以下 Yocto 版本,

DISTRO = "poky"
DISTRO_NAME = "Poky 8.0.1 (Yocto Project 1.3.1 Reference Distro)"
DISTRO_VERSION = "1.3.1"
SDK_VENDOR = "-pokysdk"

我想升级以下软件包。

  1. 目前使用软件包 apt_0.7.14 和 nee 升级到最新版本(比如 apt_1.2.12)。
  2. 当前使用包 eglibc-2.16 并且需要升级到最新版本。我认为最新的 Yocto 版本使用 glibc 而不是 eglibc。

我尝试了以下步骤,

  1. 将 apt recipes Yocto-2.3\poky-pyro-17.0.0\meta\recipes-devtools/apt 复制到我的工作空间。
  2. 已启动 bitbake。
  3. 但是我收到了一些下面给出的 do_configure 错误,
> checking for strings.h... (cached) yes checking for inttypes.h...
> (cached) yes checking for stdint.h... (cached) yes checking for
> unistd.h... (cached) yes checking db.h usability... yes checking db.h
> presence... yes checking for db.h... yes checking if we can link
> against BerkeleyDB... yes checking for curl_easy_init in -lcurl... no
> configure: error: failed: I need CURL due https support Configure
> failed. The contents of all config.log files follows to aid debugging
> /home/ebike/work/STREAMS/Int_275/main/Yocto_Git/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/apt-1.2.12-r0/apt-1.2.12/config.log
> This file contains any messages produced by compilers while running
> configure, to aid debugging if configure makes a mistake.
> 
> It was created by configure, which was generated by GNU Autoconf 2.69.
> Invocation command line was
> 
>   $
> /home/ebike/work/STREAMS/Int_275/main/Yocto_Git/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/apt-1.2.12-r0/apt-1.2.12/configure
> --build=i686-linux --host=arm-poky-linux-gnueabi --target=arm-poky-linux-gnueabi --prefix=/usr --exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share --sysconfdir=/etc --sharedstatedir=/com --localstatedir=/var --libdir=/usr/lib --includedir=/usr/include --oldincludedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/home/ebike/work/STREAMS/Int_275/main/Yocto_Git/build/tmp/sysroots/imx6qsabrelite
> --enable-nls ac_cv_lib_lzma_lzma_easy_encoder=yes ac_cv_lib_bz2_BZ2_bzopen=no
> ac_cv_lib_lz4_LZ4F_createCompressionContext=no

如果有人能帮助解决这个问题,我们将不胜感激。

【问题讨论】:

  • 获取一些“do_configure”错误并没有太大帮助。请在您的问题中添加完整的错误消息。
  • 新版本不只是包含新文件,您需要重命名它,并在您的机器上编译它时逐步完成。确保SRC_URI,PV设置正确,然后您需要逐步阅读错误。这两个版本之间的编译方式可能发生了变化。我们在这里能做的不多,我建议你阅读一些包的当前配方,阅读旧的以了解它是如何工作的
  • 你还在用1.3的原因是什么?是因为内核还是u-boot?升级软件包将确保您修复更多错误并增强安全性。

标签: embedded-linux yocto bitbake


【解决方案1】:

问题在于版本在系统中会产生连锁反应。您在此处看到的错误可能相当于“apt 需要比现有版本更新的 curl 版本”。你也可以尝试升级 curl 但是这种事情有升级的趋势。您可能会发现软件也需要更新的 gcc 或内核版本。

【讨论】:

  • 可以在这里找到更有用的答案:stackoverflow.com/a/60208833/1979048
  • 另一个答案指向如何找到食谱。这个问题是关于为什么这个特定案例失败并且由于 curl 不是依赖项而失败,在这种情况下需要新的 DEPENDS,或者 curl 是不正确的(可能太旧)版本。
猜你喜欢
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多