Не удалось найти libmount

Вопрос или проблема

Во время компиляции настраиваемой сборки (с использованием buildroot v. 11.2018) у меня возникла проблема с библиотекой libmount (проблема появилась после того, как я включил пакет efl в меню конфигурации buildroot – Целевые пакеты -> Графические библиотеки… -> efl). Я дополнительно установил пакет libmount-dev, но это ничего не дало.

checking for getxattr in -lc... yes
checking sys/xattr.h usability... yes
checking sys/xattr.h presence... yes
checking for sys/xattr.h... yes
checking for XATTR_NOFOLLOW... no
checking for LIBMOUNT... no
configure: error: *** Не удалось найти libmount

Как включить эту библиотеку, чтобы успешно скомпилировать?

Установка libmount-dev на вашу систему ничего не изменит: то, чего здесь не хватает, это libmount для целевой системы, а не для машины сборки. libmount предоставляется пакетом util-linux.

Какова ваша конфигурация Buildroot? EFL должен нуждаться в libmount только в том случае, если включен BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT. Если вы попали в эту ситуацию с выключенным BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT, то это ошибка в Buildroot.

Не могли бы вы заполнить баг-репорт в трекере ошибок Buildroot по адресу https://bugs.busybox.net/, указав точную версию Buildroot, которую вы используете, и прикрепив ваш файл .config Buildroot, который позволяет воспроизвести проблему?

Также, пожалуйста, убедитесь, что эта ошибка возникает после полностью чистой сборки, т.е. “make clean && make”.

Я столкнулся с такой же проблемой, когда пытался собрать libglib2 в Buildroot-2019.02.5 (mc зависимость). libmount был проверен (Целевые пакеты -> Системные инструменты -> util-linux -> libmount), но make libglib2-configure завершился с ошибкой. Проблема была решена после того, как я включил утилиты mount/umount в конфигурации util-linux, пересобрал её и весь rootfs.

make util-linux-dirclean
make util-linux-build
make

Ответ или решение

Проблема с отсутствием библиотеки libmount во время компиляции системы с использованием Buildroot может возникать по нескольким причинам. Рассмотрим основные шаги для ее устранения и обеспечения успешной сборки.

Анализ проблемы

На основании предоставленной информации, ошибка возникает в процессе конфигурации, когда система не может обнаружить библиотеку libmount. Это в частности происходит после добавления пакета EFL в конфигурацию Buildroot. Ваша установка пакета libmount-dev на хост-системе не приводит к изменениям, так как необходимая библиотека должна быть частью целевой системы.

Шаги для решения проблемы

  1. Проверка конфигурации Buildroot:
    Вам необходимо убедиться, что в конфигурации Buildroot включены все необходимые опции, касающиеся libmount и связанных с ним библиотек. Убедитесь, что опция BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT активирована. Эта опция отвечает за включение libmount в сборку пакета util-linux, который предоставляет необходимую библиотеку.

  2. Очистка сборки:
    Перед тем как повторно запустить сборку, выполните полную очистку проекта:

    make clean && make

    Это гарантирует, что сборка будет выполнена с нуля, без влияния остатков предыдущих сборок.

  3. Включение утилит mount и umount:
    В некоторых случаях, даже если libmount активирован, компоненты, такие как утилиты mount и umount должны быть включены в конфигурацию util-linux. Проверьте настройки в Buildroot и убедитесь, что эти утилиты выбраны.

    Для этого вам следует:

    • Перейти в меню конфигурации util-linux.
    • Убедиться, что опции для mount и umount включены.

    После внесения изменений выполните повторную сборку:

    make util-linux-dirclean
    make util-linux-build
    make
  4. Создание отчетов о баге:
    Если после всех вышеописанных шагов проблема остается, вы можете заполнить отчет о баге в системе отслеживания ошибок Buildroot. Укажите:

    • Точную версию Buildroot.
    • Приложите ваш файл конфигурации .config, который позволяет воспроизвести ошибку. Это поможет разработчикам понять, в чем может быть проблема.

    Для подачи отчета воспользуйтесь сайтом: Bugzilla Buildroot.

Заключение

Ошибки, связанные с отсутствием libmount, часто являются следствием неправильной конфигурации или недостаточных опций в сборке. Следуя приведенным рекомендациям, вы сможете устранить проблему и успешно завершить сборку вашего кастомизированного дистрибутива. Если же проблема продолжает возникать, не стесняйтесь обращаться за поддержкой к сообществу Buildroot или подавать отчет о баге для дальнейшего анализа.

Оцените материал
Добавить комментарий

Капча загружается...