2016-09-06 2 views
0

J'essaie d'ajouter un paquet dans mon image Yocto. Actuellement, je peux construire mon image, mais quand j'installe l'image, le logiciel est installé dans un répertoire différent. Existe-t-il des moyens de rediriger le répertoire d'installation. Exemple les fichiers de bibliothèque doivent être installés dans /usr/lib64 mais son installé dans /usr/lib/.Installation du fichier de recette dans un répertoire différent

Je viens de comprendre que lorsque je construis l'application, le fichier .ipk ne contient pas le dossier/usr/lib64 /. Ce qui signifie que les fichiers ne sont pas ajoutés. Y a-t-il de toute façon une solution à ce problème?

Ceci est mon FILES _ $ {PN} Code:

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

Update 1 Ceci est mon code 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/ 
} 

Tous les fichiers qui y sont énumérés sont ajoutés dans l'IPK fichier à l'exception des fichiers /usr/lib64/*. Est-ce que c'est la bonne façon de le faire. S'il vous plaît quelqu'un peut m'aider à ce sujet. Merci d'avance.

+0

en double? https://stackoverflow.com/questions/35206207/how-can-i-change-the-installation-path-of-an-autotools-based-bitbake-recipe – g0hl1n

+0

@ g0hl1n mais le mien je n'utilise pas autotools – anonymous5671

+1

Néanmoins, Si la recette est bien écrite, elle doit respecter les variables 'prefix' correspondantes. Si non, vous devriez ajouter la recette à votre question pour obtenir une réponse valide. – g0hl1n

Répondre

0

Vous pouvez installer les bibliothèques manuellement dans une recette:

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

D explication variable à partir Reference Manual:

Le répertoire de destination. L'emplacement dans le répertoire de construction où les composants sont installés par la tâche do_install. Ce emplacement par défaut est:

$ {} Workdir/image

Vous pouvez trouver le contenu des variables via la commande suivante (variables libdir comme exemple):

bitbake -e | grep ^libdir 
+0

J'ai essayé 'bitbake -e | grep^libdir' commande son affichage 'libdir_native ="/usr/lib libdir_nativesdk = "/ usr/lib" 'Y at-il de toute façon de le changer en'/usr/lib64' – anonymous5671

+0

J'ai encore édité la question – anonymous5671

+0

et si je besoin de '/ usr/lib' et'/usr/lib64' – anonymous5671