首页 > 解决方案 > yocto 战士分支中的“do_populate_sdk:Could not invoke dnf.Command”

问题描述

通过 生成 SDK 时bitbake -c populate_sdk core-image-sato,出现以下错误,

ERROR: panther2-usb-1.0-r0 do_populate_sdk: Could not invoke dnf. Command '/home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/sdk/image/opt/poky/2.7.1/sysroots/corei7-64-poky-linux/etc/dnf/dnf.conf --setopt=reposdir=/home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/sdk/image/opt/poky/2.7.1/sysroots/corei7-64-poky-linux/etc/yum.repos.d --installroot=/home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/sdk/image/opt/poky/2.7.1/sysroots/corei7-64-poky-linux --setopt=logdir=/home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/temp --repofrompath=oe-repo,/home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/oe-sdk-repo -x lib32-libgmp-dev,lib32-xtrans-dev,lib32-python3-core,lib32-nettle-dev --nogpgcheck install base-passwd change-pid config-port cronie dnf dpkg emc-test esys libgnutls30 infusion iperf3 kernel-devsrc logrotate lsof mfg-test mg mib-test os-release packagegroup-base-extended packagegroup-core-boot packagegroup-core-ssh-dropbear packagegroup-core-standalone-sdk-target packagegroup-core-x11-base packagegroup-core-x11-sato pkg-test procps psplash python rpm run-postinsts screen shadow systemd-scripts target-sdk-provides-dummy udev-rules-cp2108 x11vnc xf86-video-fbdev xf86-video-modesetting xf86-video-vesa xserver-xorg xserver-xorg-extension-glx lib32-dpkg lib32-esys lib32-libfreetype6 lib32-libc6 lib32-libgnutls30 lib32-libgcc1 lib32-libstdc++6 lib32-libx11-6 lib32-libxml2-2 lib32-ncurses lib32-libncurses5 lib32-packagegroup-core-standalone-sdk-target' returned 1:
DNF version: 4.1.0
cachedir: /home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/sdk/image/opt/poky/2.7.1/sysroots/corei7-64-poky-linux/var/cache/dnf
Added oe-repo repo from /home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/oe-sdk-repo
repo: using cache for: oe-repo
not found other for: 
not found modules for: 
not found deltainfo for: 
not found updateinfo for: 
oe-repo: using metadata from Tue 17 Sep 2019 10:57:08 AM UTC.
Last metadata expiration check: 0:00:01 ago on Tue 17 Sep 2019 10:57:09 AM UTC.
No module defaults found
Excludes in dnf.conf: lib32-libgmp-dev, lib32-nettle-dev, lib32-python3-core, lib32-xtrans-dev
--> Starting dependency resolution
--> Finished dependency resolution
Error: 
 Problem: package lib32-dpkg-1.19.4-r0.corei7_32 requires lib32-perl, but none of the providers can be installed
  - package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with /usr/bin/perl provided by lib32-perl-5.28.1-r1.corei7_32
  - conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

ERROR: panther2-usb-1.0-r0 do_populate_sdk: 
ERROR: panther2-usb-1.0-r0 do_populate_sdk: Function failed: do_populate_sdk
ERROR: Logfile of failure stored in: /home/panther2/warrior/build/tmp/work/panther2-poky-linux/panther2-usb/1.0-r0/temp/log.do_populate_sdk.28501
ERROR: Task (/home/panther2/warrior/sources/meta-ncr/recipes-sato/images/panther2-usb.bb:do_populate_sdk) failed with exit code '1'

我正在为 yocto 战士分支建设。我已经看到人们给出了一个替代方法, PACKAGE_CLASSES ?= "package_rpm"PACKAGE_CLASSES ?= "package_ipk"解决了这个错误,但我不想更改我的包管理器。

任何帮助都会非常有帮助。谢谢你的时间。

标签: sdkyocto

解决方案


我已通过替换主分支(target-sdk-provides-dummy.bb)中的配方文件解决了该错误。我正在使用会导致错误的战士分支配方。

我提到了这个链接。


推荐阅读