dpkg-shlibdeps가 "종속성 정보를 찾을 수 없음"으로 인해 실패합니다.

dpkg-shlibdeps가 "종속성 정보를 찾을 수 없음"으로 인해 실패합니다.

저는 tensorflow용 사용자 정의 데비안 패키지를 만들고 있습니다. 어느 순간 달리던 중에

dpkg-buildpackage -us -uc

나는 얻다:

dpkg-shlibdeps: error: no dependency information found for /usr/local/cuda-9.1/lib64/libcurand.so.9.1 (used by debian/libhal-tensorflow-cc/usr/lib/libtensorflow_framework.so)
Hint: check if the library actually comes from a package.
dh_shlibdeps: dpkg-shlibdeps -Tdebian/libhal-tensorflow-cc.substvars debian/libhal-tensorflow-cc/usr/lib/libtensorflow_cc.so debian/libhal-tensorflow-cc/usr/lib/libtensorflow_framework.so returned exit code 2
debian/rules:9: recipe for target 'binary' failed

이 페이지를 확인했습니다.https://manpages.debian.org/jessie/dpkg-dev/dpkg-shlibdeps.1.en.html 그리고 종속성 정보를 얻으려면 도구에서 수행하는 단계를 따르십시오.

$ dpkg -S libcurand.so.9.1
cuda-curand-9-1: /usr/local/cuda-9.1/targets/x86_64-linux/lib/libcurand.so.9.1
cuda-curand-9-1: /usr/local/cuda-9.1/targets/x86_64-linux/lib/libcurand.so.9.1.85

실제로 이 패키지에는 해당 .shlibs 파일이 있습니다.

$ cat /var/lib/dpkg/info/cuda-curand-9-1.shlibs
libcurand 9.1 cuda-curand-9-1

패키지가 실제로 설치되어 있는지 확인했는데 다음과 같습니다.

$ apt list | grep cuda-curand-9-1

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

cuda-curand-9-1/unknown,now 9.1.85-1 amd64 [installed,automatic]

그래서 뭐가 불만인지 모르겠는데

답변1

dpkg-shlibdeps정보를 찾고 있지만 /usr/local/cuda-9.1/lib64/libcurand.so.9.1배송 cuda-curand-9-1된 패키지가 /usr/local/cuda-9.1/targets/x86_64-linux/lib/libcurand.so.9.1동일하지 않습니다.

libtensorflow_framework.so올바른 경로를 사용하여 포함된 라이브러리에 연결되었는지 확인해야 합니다 . 또는 debian/shlibs.local자체 패키지에 종속성 정보를 제공하거나 dpkg-shlibdeps완전히 재정의할 수 있습니다 .

이상적으로는 Debian 시스템의 cuda-curand-9-1정식 위치( )에 해당 라이브러리를 게시하도록 수정되어야 합니다 ./usr/lib/<triplet>

관련 정보