Во время сборки SDK: environment-setup.d /конфликтует между попытками установки

Я пытаюсь создать образ для beaglebone, который содержит Qt5, а также создать SDK для этого образа.проблемаМоя проблема заключается в том, что сборка не выполняется ---- +: = 0 =: + ---- для создания SDK со следующей ошибкой:Ошибка: Ошибка проверки транзакции: файл /opt/poky/2.3.1/sysroots/x86_64-pokysdk-linux/environment-setup.d конфликтует между попытками установки nativesdk-cmake-3.7.2-r0.x86_64_nativesdk и nativesdk-qtbase-инструменты-5.8.0 + git0 + 49dc9aa409-r0.x86_64_nativesdkЧуть дальше вверх по течению я обнаружил следующее сообщение об ошибке:ОШИБКА: не удалось вызвать dnf.Команда '/home/ubuntu/workspace/bbb/build-toaster-2/tmp/work/my_machine-poky-linux-gnueabi/my-image-dev/1.0-r0/recipe-sysroot-native/usr/bin/dnf[...] 'вернул 1:Добавлен репозиторий oe-repo из файла: ///home/ubuntu/workspace/bbb/build-toaster-2/tmp/work/my-machine-poky-linux-gnueabi/my-image-dev/1.0-r0/oe-rootfs-репо.Последняя проверка срока действия метаданных: 0:00:00 назад в среду, 16 августа 11:47:27 2017 UTC.Зависимости устранены.Что у меня естьДля настройки своего изображения я следовал советам здесь, а также аналогичным постам, в которых говорится то же самое в других местах в Интернете.Это мой (сокращенный и слегка отредактированный) файл изображения bb:Я также установил ---- +: = 2 =: + ----, а также ---- +: = 3 =: + ---- в моем ---- +: = 4 =: + ----Сборка работает нормально, если я удаляю строку ---- +: = 5 =: + ---- , но, конечно, в этом случае я не получаю make для моего SDK.Что я узналЯ обнаружил, что у разных людей одна и та же проблема (пример здесь ), но никто так и не получил ответа.Я проверил nativesdk-cmake, а также рецепты nativesdk-qtbase_git (оба неизменных стандарта), чтобы увидеть, где создаются файлы, и ни один из них не выглядит проблемным для меня:natives-qtbase_git.bb:cmake-3.7.2.bb:environment.d-cmake.sh:Ради попытки я пошел вперед и выполнилсценарий откоторый получил мне следующее сообщение об ошибке:Модуль dnf, похоже, существует:Вы видите что-нибудь, что я делаю не так?Я абсолютно невежественен ...
4 голоса | спросил T3 H40 16 PM00000050000003931 2017, 17:56:39

5 ответов


0
Я создаю SDK с помощью cmake и Qt5 без каких-либо проблем ...Ваша проблема, кажется, проистекает из ---- +: = 0 =: + ---- , и, поскольку я строю с ---- +: = 1 =: + ---- без каких-либо проблем, возможно,очень хорошо быть ошибкой в ​​обработке ---- +: = 2 =: + ---- в OpenEmbedded.Не могли бы вы попытаться восстановить с помощью:в вашем ---- +: = 4 =: + ---- и видите, что помогает?
ответил Anders 25 PM00000050000004731 2017, 17:23:47
0
Изменить : ответ Андерса обеспечивает более элегантное решение путем переключения класса упаковки.Если вы можете, проверьте его подход, прежде чем пытаться обойти это.Я нашел обходной путь, который работал для меня, но не является идеальным решением.Я отправляю это так или иначе, в случае, если это кому-то помогает:Я понял, что пакет ---- +: = 0 =: + ---- каким-то образом конфликтует с пакетом Qt.Для этого я создал файл ---- +: = 1 =: + ---- в своем пользовательском слое со следующим содержанием:Это удаляет зависимость cmake из сборки SDK, которая работает для моих целей.Но это просто решает симптомы, а не проблему.Поэтому я рад за любое другое решение.
ответил T3 H40 18 PM00000010000004231 2017, 13:09:42
0
Просто попробуйте добавить DIRFILES = "" в nativesdk-qtbase.bb (вам лучше установить чистый и аккуратный nativesdk-qtbase.bbappend в вашем пользовательском слое с помощью DIRFILES = "").Это позволяет избежать конфликтов из-за владения каталогом RPM для этого RPM, который является политикой по умолчанию в стандартной упаковке RPM.Подробности смотрите в package_rpm.bbclass @ python write_specfile () {.... walk_files метод.Примечание: DIRFILES должны быть определены, но оставлены пустыми, чтобы это работало с текущим пакетом.Вуаля.Приветствия.
ответил crystal 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 13 Sep 2017 15:16:18 +0300 2017, 15:16:18
0
Как упоминалось в so61pi, RPM имеет строгую проверку файлов /каталогов.В моем случае после установки nativesdk-qtbase папка environment.d имела разрешения 775, тогда как nativesk-cmake создал эту же папку с 755.Я не знаю, было ли это вызвано тем, что функция ---- +: = 0 =: + ---- выполняется в среде fakeroot, но я исправил ее, добавив тело функции в---- +: = 1 =: + ---- функция и удаление ---- +: = 2 =: + ---- .Не уверен, что это правильное решение.Я заметил, что некоторые другие рецепты используют ключевое слово fakeroot, а другие нет.Интересно, почему...
ответил Rocq 27 FebruaryEurope/MoscowbTue, 27 Feb 2018 10:38:10 +0300000000amTue, 27 Feb 2018 10:38:10 +030018 2018, 10:38:10
0
RPM имеет строгую проверку файлов /каталогов.---- +: = 0 =: + ---- каталог в вашем вопросе может иметь другой режим или пользователя между двумя пакетами.Вы можете проверить функцию rpmfilesCompare для точных проверок, которые выполняет RPM.
ответил so61pi 3 Jpm1000000pmWed, 03 Jan 2018 19:03:51 +030018 2018, 19:03:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132