저는 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>