2016-09-06 6 views
0

Я пытаюсь добавить один пакет в свое изображение Yocto. В настоящее время я могу создать свое изображение, но когда я устанавливаю изображение, программное обеспечение устанавливается в другом каталоге. Есть ли способ перенаправить каталог установки. Например, файлы библиотеки должны быть установлены в /usr/lib64, но их установить в /usr/lib/.Установка файла рецепта в другом каталоге

Я только что понял, что, когда я создаю файл .ipk приложения, у меня нет папки/usr/lib64 /. Это означает, что файлы не добавляются в него. Есть ли пути для решения этой проблемы?

Это мой FILES _ $ {PN} Код:

FILES_${PN} = "/usr/lib/* \ 
       /usr/lib64/* \ 
       /usr/bin/* \ 
       /etc/* " 

Update 1 Это мой do_install код:

do_install(){ 
    cp -r ${WORKDIR}/xxx/* ${WORKDIR}/image/ 
    install -d ${D}/usr/lib64 
    install -m 0644 ${WORKDIR}/xxx/usr/lib64/* ${D}/usr/lib64/ 
} 

Все файлы, перечисленные в нем будут добавлены в фк файл, за исключением файлов /usr/lib64/*. Правильно ли это. Пожалуйста, помогите мне в этом. Заранее спасибо.

+0

Дублирование? https://stackoverflow.com/questions/35206207/how-can-i-change-the-installation-path-of-an-autotools-based-bitbake-recipe – g0hl1n

+0

@ g0hl1n, но мой я не использую autotools – anonymous5671

+1

Тем не менее, если рецепт написан хорошо, он должен соблюдать соответствующие переменные 'префикс'. Если нет, вы должны добавить рецепт к вашему вопросу, чтобы получить действительный ответ. – g0hl1n

ответ

0

Вы можете установить библиотеки вручную в рецепте:

do_install() { 
    install -d ${D}/usr/lib64  # ${D}${libdir} maybe also works 
    install -m 0644 libexample.a ${D}/usr/lib64 
} 

D переменного объяснение от Reference Manual:

директории назначения. Расположение в каталоге сборки, где компоненты устанавливаются с помощью задачи do_install. Это расположение по умолчанию:

$ {Workdir}/изображения

Вы можете найти содержание переменных через следующую команду (libdir переменную в качестве примера):

bitbake -e | grep ^libdir 
+0

Я пробовал 'битботь -e | grep^libdir' command его покажет 'libdir_native ="/usr/lib libdir_nativesdk = "/ usr/lib" 'Есть ли какие-либо изменения, чтобы изменить его на'/usr/lib64' – anonymous5671

+0

Я еще раз редактировал вопрос – anonymous5671

+0

что если i нужны как '/ usr/lib', так и'/usr/lib64' – anonymous5671