РЕШЕНО – ROS2 Yocto – в RDEPENDS_ не найдены провайдеры?

Немного предыстории

Я пытаюсь установить пакет 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

что не имеет для меня смысла, так как каталог есть, я даже скопировал каталог

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Можете ли вы попробовать добавить следующие rdepends в свой рецепт:

RDEPENDS_${PN} = "python3-core python3-native"

И посмотреть, решит ли это эту проблему?

Привет! Спасибо за предложение! Я попытался добавить это, но, к сожалению, это не решило проблему :( Я собираюсь обновить свой текущий файл .bb

Komatsu 17.02.2023 02:52

Я пытался добавить python3-native как в DEPENDS, так и в RDEPENDS, но ни один из них не работает

Komatsu 17.02.2023 02:54

Я вижу, вы также закомментировали эту строку: INSANE_SKIP_${PN} += "file-rdeps" Это тоже не удалось?

Roberto Gutierrez 17.02.2023 20:56

Это удалось, но пакет не был установлен на образ yocto. Я думаю, что битбак пропустил установку пакета, так как он глючит (?)

Komatsu 21.02.2023 01:12

Кстати я как-то нашел решение! Ну, после этого есть еще одна ошибка, но я собираюсь открыть новый вопрос по этому поводу, большое спасибо за вашу помощь!

Komatsu 21.02.2023 01:13
Ответ принят как подходящий

Задача решена! Я собираюсь ответить на свой вопрос ради будущих читателей, которые могут столкнуться с той же проблемой.

Я решил ошибку, добавив эти

RDEPENDS_${PN} += "python3 python3-setuptools python3-native python3-core"

по умолчанию devtool добавляет 2 RDEPENDS (не знаю, почему), но я сделал их одним

Спасибо всем, кто помог!

Другие вопросы по теме