2016-09-06 5 views
0

내 Yocto 이미지에 패키지 하나를 추가하려고합니다. 현재 이미지를 만들 수 있지만 이미지를 설치하면 소프트웨어가 다른 디렉토리에 설치됩니다. 설치 디렉토리를 다시 라우팅 할 수있는 방법이 있습니까? 예를 들어, 라이브러리 파일은 /usr/lib64에 설치해야하지만 그 파일은 /usr/lib/에 설치해야합니다.다른 디렉토리에 설치하는 레시피 파일

나는 응용 프로그램을 빌드 할 때 .ipk 파일 안에/usr/lib64/폴더가 없다는 것을 알아 냈습니다. 즉, 파일이 추가되지 않습니다. 이 문제를 해결할 여지가 있습니까?

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

업데이트 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/ 
} 

모든 파일이 나열된 거기 IPK에 추가되고 있습니다

이 내 FILES _ $ {PN} 코드 파일 (/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

'bitbake -e | libdir_native = "/ usr/lib"를 표시하는 grep^libdir 명령 liblibdir_nativesdk = "/ usr/lib"'그것을/usr/lib64로 바꿀 수 있습니까? – anonymous5671

+0

다시 한 번 질문을 수정했습니다 – anonymous5671

+0

만약 내가 if '/ usr/lib'과'/ usr/lib64'가 둘 다 필요합니다. – anonymous5671