web-dev-qa-db-ja.com

共有ライブラリの依存関係をdebian / controlに追加するにはどうすればよいですか?

OpenCVに依存するQtアプリケーションからdebianパッケージを作成しようとしています。

私がこれまでにしたこと:

  1. VirtualboxにUbuntuをセットアップしました
  2. アプリケーションをコンパイルして実行するために必要なソフトウェア(Qt関連のもの、ffmpeg、コーデック、OpenCVなど)をインストールしました。
  3. アプリケーションのコンパイルと実行に成功しました
  4. GPGキーを作成しました
  5. Dh_makeを使用して、プロジェクトディレクトリにdebianディレクトリを作成しました
  6. パッケージをdebian/control-> Buildに追加しました。dpkg-depcheck -d qmakeを実行して得たものによって異なります。
  7. Dpkg-depcheck -dSampleAppで取得したものもDependsに追加しました
  8. 著作権ファイルと変更ログファイルを編集しました
  9. dpkg-buildpackage -bを実行しようとしました

この時点で、次のエラーメッセージが表示されました。

dpkg-shlibdeps: error: no dependency information found for /usr/local/lib/libopencv_imgcodecs.so.3.1 (used by debian/sampleapp/opt/SampleApp/bin/SampleApp)

dh_shlibdeps: dpkg-shlibdeps -Tdebian/sampleapp.substvars debian/sampleapp/opt/SampleApp/bin/SampleApp returned exit code 2

make: *** [binary] Error 2

dpkg-buildpackage: error: debian/rules binary gave error exit status 2

これらのファイルはすべて/usr/local/lib/の下にあります。私はこれを読みました: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html しかし、私は解決策を見つけることができませんでした。これらの依存関係をパッケージに追加するにはどうすればよいですか?

編集:

Build-Depends field:

Build-Depends: debhelper (>= 8.0.0), libpopt0:i386, libqt5core5a:i386, qtdeclarative5-dev, libglib2.0-0:i386, qtchooser, pkg-config, qt5-qmake:i386, locales

Depends field:

Depends: ${shlibs:Depends}, ${misc:Depends}, udev, libxext6:i386, libxcomposite1:i386, libopencore-amrwb0:i386, libglib2.0-0:i386, libpangocairo-1.0-0:i386, libva-drm1:i386, libxinerama1:i386, libmp3lame0:i386, libnih1:i386, libx11-6:i386, libxcb-render0:i386, libffi6:i386, libgdk-pixbuf2.0-0:i386, libdrm2:i386, libvorbis0a:i386, libfontconfig1:i386, libxrender1:i386, libpango-1.0-0:i386, libdbus-1-3:i386, libpixman-1-0:i386, libopenexr6:i386, libxvidcore4:i386, libjpeg-turbo8:i386, libcgmanager0:i386, libcairo2:i386, libjasper1:i386, libxfixes3:i386, libilmbase6:i386, libtiff5:i386, libusb-1.0-0:i386, libdc1394-22:i386, libxi6:i386, libfreetype6:i386, libxrandr2:i386, libqt5network5:i386, libpng12-0:i386, libthai0:i386, libxcb-shm0:i386, libva1:i386, libvorbisenc2:i386, libtheora0:i386, libharfbuzz0b:i386, libicu52:i386, libjbig0:i386, libopencore-amrnb0:i386, libogg0:i386, libxcursor1:i386, libxcb1:i386, libraw1394-11:i386, libudev1:i386, libnih-dbus1:i386, libqt5core5a:i386, libgraphite2-3:i386, libva-x11-1:i386, libatk1.0-0:i386, libexpat1:i386, libgtk2.0-0:i386, libpangoft2-1.0-0:i386, libdatrie1:i386, libxdmcp6:i386, libvdpau1:i386, libxdamage1:i386, libxau6:i386
3
John Williams

依存している共有ライブラリが/usr/local/lib(または同様のもの)ではなく/usr/libにインストールされている場合、それはdpkgパッケージマネージャーによって管理されるパッケージの一部ではないと思われます。 dh_shlibdepsは、新しいパッケージが依存する必要のあるすべてのものの完全なリストを作成したいと考えていますが、この場合、それらの1つがパッケージの外部に存在するため、リストできません。

OpenCVは、ローカルインストールからではなく、Debianパッケージ(およびそれに対応する-devパッケージからビルドできるため)からインストールする必要があります。

3
Celada