Немного предыстории
Я пытаюсь установить пакет ROS2 в образ Yocto с помощью Devtools. Я следую этому руководству здесь с некоторыми изменениями в соответствии с моим проектом.
Инструментарий создан успешно, но когда я запускаю
ros2 pkg list
Моего пакета ROS2 там не было. Я добавил свои слои в bblayers.conf и т. д.
Поэтому я подумал, что мне нужно снова обработать образ, чтобы установить пакет ros2 внутри образа Yocto.
Вот где проблема
Когда я бегу
bitbake core-image-sato
у меня ошибка
py-pubsub-0.0.0+git999-r0 do_package_qa: QA Issue: /usr/lib/py_pubsub/talker contained in
package py-pubsub requires /home/<PC_name>/yocto/build/tmp/work
/aarch64-poky-linux/py-pubsub/0.0.0+git999-r0/recipe-sysroot-native/usr/bin/python3-native/python3, but no providers found in RDEPENDS_py-
pubsub? [file-rdeps]
Я предполагаю, что проблема заключается в отсутствии зависимости, добавленной в RDEPENDS в файле py-pubsub_git.bb
, поэтому я добавил
RDEPENDS_${PN} += "/home/<PC_name>/yocto/build/tmp/work/aarch64-poky-
linux/py-pubsub/0.0.0+git999-r0/recipe-sysroot-native/usr/bin/python3-
native/python3"
но выскочила другая ошибка. Я также пытался добавить python3
к RDEPENDS, но все равно получал ту же ошибку.
Любая помощь будет оценена по достоинству! Спасибо.
py-pubsub_git.bb
SUMMARY = "ROS2YOCTO: Examples of minimal publisher/subscriber using rclpy"
HOMEPAGE = "UNKNOWN"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
SRC_URI = "git://github.com/<username>/py-pubsub.git;protocol=https;branch=master"
# Modify these as desired
PV = "0.0.0"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-native ament-copyright ament-flake8 ament-pep257 ament-cmake-python python3-distlib python3 python3-native"
# WARNING: the following rdepends are from setuptools install_requires. These
# upstream names may not correspond exactly to bitbake package names.
RDEPENDS_${PN} += "python3-setuptools python3 ament-cmake-python"
# WARNING: the following rdepends are determined through basic analysis of the
# python sources, and might not be 100% accurate.
RDEPENDS_${PN} += "python3-core rclpy std-msgs"
RDEPENDS_${PN} += "python3-six python3-debugger python3-modules"
#RDEPENDS_${PN} += "bc python flex bison ${TCLIBC}-utils"
#RDEPENDS_${PN} += "openssl-dev util-linux"
#RDEPENDS_${PN} += "${@bb.utils.contains('ARCH', 'x86', 'elfutils', '', d)}"
FILES_${PN} += "/usr/share/ament_index/*"
#ALLOW_EMPTY_${PN} = "1"
#INSANE_SKIP_${PN} += "file-rdeps"
#INSANE_SKIP_${PN} += "build-deps"
Редактировать: Я нашел пакет, который также выдает точно такую же ошибку, как у меня здесь, и я попытался сделать то, что они предложили
do_install () {
# Specify install commands here
rm -r ${D}/usr/lib/py-pubsub
}
но выдает эту ошибку
No such file or directory
что не имеет для меня смысла, так как каталог есть, я даже скопировал каталог
Можете ли вы попробовать добавить следующие rdepends в свой рецепт:
RDEPENDS_${PN} = "python3-core python3-native"
И посмотреть, решит ли это эту проблему?
Я пытался добавить python3-native как в DEPENDS, так и в RDEPENDS, но ни один из них не работает
Я вижу, вы также закомментировали эту строку: INSANE_SKIP_${PN} += "file-rdeps" Это тоже не удалось?
Это удалось, но пакет не был установлен на образ yocto. Я думаю, что битбак пропустил установку пакета, так как он глючит (?)
Кстати я как-то нашел решение! Ну, после этого есть еще одна ошибка, но я собираюсь открыть новый вопрос по этому поводу, большое спасибо за вашу помощь!
Задача решена! Я собираюсь ответить на свой вопрос ради будущих читателей, которые могут столкнуться с той же проблемой.
Я решил ошибку, добавив эти
RDEPENDS_${PN} += "python3 python3-setuptools python3-native python3-core"
по умолчанию devtool добавляет 2 RDEPENDS (не знаю, почему), но я сделал их одним
Спасибо всем, кто помог!
Привет! Спасибо за предложение! Я попытался добавить это, но, к сожалению, это не решило проблему :( Я собираюсь обновить свой текущий файл .bb