Добавление php-curl в сборку Yocto

Я создавал собственное изображение, используя Yocto и wpewebkit для использования в Docker. Мне нужно запустить локальный веб-сервер с php, что я выполнил без проблем. Мне нужно использовать curl в моем проекте, и у меня установлены apache2, php, modphp и curl. Все, что мне нужно, это php-curl, но я не могу найти, как это установить. Кто-нибудь знает, как или если я могу это сделать? Я приложил все усилия к поиску нескольких фраз, но я только нахожу, как установить php-curl, используя apt-get или yum, или я получаю ссылки на каталоги meta- *, к которым у меня есть доступ в моих файлах сборки в любом случае.

Если это вообще поможет, это пользовательское изображение было основано на изображении, предоставленном из следующего проекта на GitHub: https://github.com/resin-io-playground/resin-wpe/tree/master/base-image . Я уже говорил с разработчиком, и их знание PHP ограничено.

РЕДАКТИРОВАТЬ # 1: Прогресс до сих пор, пришлось обновить файл curl.bb, чтобы правильно включить libcurl-dev, а затем работал с предложением @ pmod включить curl в сборку php. Казалось, что все работает нормально, пока я не получил следующую ошибку:

| ../php-7.1.9/configure: line 386: test: please: integer expression expected
| configure: error: reinstall
| ../php-7.1.9/configure: line 275: return: please: numeric argument required
| ../php-7.1.9/configure: line 285: exit: please: numeric argument required
| NOTE: The following config.log files may provide further information.
| NOTE: /base-image/build/tmp-glibc/work/x86_64-linux/php-native/7.1.9-r0/build/config.log
| ERROR: configure failed
| WARNING: /base-image/build/tmp-glibc/work/x86_64-linux/php-native/7.1.9-r0/temp/run.do_configure.29590:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_configure (log file is located at /base-image/build/tmp-glibc/work/x86_64-linux/php-native/7.1.9-r0/temp/log.do_configure.29590)
ERROR: Task (virtual:native:/base-image/build/../meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb:do_configure) failed with exit code '1'

Редактировать # 2: я пошел дальше и добавил все, что мне не хватало. Я получаю ту же ошибку выше, где функция do_configure во время сборки php не работает. Я публикую ниже то, что я гарантировал, что у меня есть в моем файле curl.bb (я должен был добавить это), что у меня есть в моем файле php.inc, и что файлы curl находятся в промежуточной директории.

curl.bb:

PACKAGES =+ "lib${BPN} lib${BPN}-native lib${BPN}-dev lib${BPN}-dev-native"
FILES_lib${BPN} = "${libdir}/lib*.so.*"
FILES_lib${BPN}-dev = "${includedir} \
${libdir}/lib*.so \
${libdir}/lib*.a \
${libdir}/lib*.la \
${libdir}/pkgconfig \
${datadir}/aclocal \
${bindir}/*-config"

php.inc:

EXTRA_OECONF_append = " --with-curl=${libdir}/.."DEPENDS_${PN} += "libcurl-dev libcurl-dev-native"

PHP Staging Directory:

/installeddeps/curl-native
/installeddeps/curl-native.b77f37db31cf2391919a12c5c9774bff
/installeddeps/curl-native.complete
/usr/share/aclocal/libcurl.m4
/usr/bin/curl-config
/usr/bin/crossscripts/curl-config
/usr/bin/curl
/usr/lib/pkgconfig/libcurl.pc
/usr/lib/libcurl.so
/usr/lib/libcurl.a
/usr/lib/libcurl.so.4.4.0
/usr/lib/libcurl.so.4
/usr/include/curl
/usr/include/curl/curl.h
/usr/include/curl/curlrules.h
/usr/include/curl/curlbuild.h
/usr/include/curl/curlver.h
/usr/include/curl/easy.h

1

Решение

В соответствии с Руководство по PHP, Функция PHP / cURL включена на этапе конфигурации php с —с-завитка = [каталог] вариант.

Я проверил основной рецепт включения файла php.inc и не смог найти такой вариант конфигурации. Итак, попробуйте создать в вашем рабочем слое PHP _%. bbappend файл с (или добавить это прямо в нижней части php.inc тестировать):

EXTRA_OECONF_append_class-target = " --with-curl=${STAGING_LIBDIR}/.."DEPENDS_append_class-target = " curl"

Обратите внимание, что локон пакет среди ЗАВИСИТ потому что это необходимо на этапе сборки.

Я не думаю, что вам нужно обновлять рецепт curl с помощью PACKAGES и FILES, pkg_config должен позаботиться

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]