dpkg-shlibdeps が「依存関係情報が見つかりません」のため失敗します。

dpkg-shlibdeps が「依存関係情報が見つかりません」のため失敗します。

私はtensorflow用のカスタムDebianパッケージを作成しています。ある瞬間走っている間

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>

おすすめ記事