debian/control에 공유 라이브러리 종속성을 어떻게 추가하나요?

debian/control에 공유 라이브러리 종속성을 어떻게 추가하나요?

OpenCV를 사용하는 Qt 애플리케이션에서 데비안 패키지를 만들려고 합니다.

지금까지 내가 한 일:

  1. Virtualbox에서 Ubuntu를 설정했습니다.
  2. 애플리케이션(Qt 항목, ffmpeg코덱, OpenCV 등) 을 컴파일하고 실행하는 데 필요한 소프트웨어를 설치했습니다.
  3. 애플리케이션을 성공적으로 컴파일하고 실행했습니다.
  4. GPG 키를 만들었습니다
  5. dh_make를 사용하여 프로젝트 디렉토리에 debian 디렉토리를 만들었습니다.
  6. debian/control->Build Does에 패키지를 추가했고 이를 실행하여 얻은 결과를 얻었습니다.dpkg-depcheck -d qmake
  7. 또한 dpkg-depcheck -d SampleApp을 dpkg-depcheck -d SampleApp을 추가하여
  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

답변1

당신이 의존하는 공유 라이브러리가 /usr/local/lib대신 (또는 유사한)에 설치되어 있다면, 패키지 관리자가 관리하는 패키지의 일부가 /usr/lib아닌 것으로 의심됩니다 . 새 패키지가 의존해야 하는 모든 항목의 전체 목록을 작성하려고 하지만 이 경우 그 중 하나가 패키지 외부에 존재하는 것으로 보이므로 나열할 수 없습니다.dpkgdh_shlibdeps

로컬이 아닌 Debian 패키지(및 -dev이에 대해 빌드할 수 있는 해당 패키지)에서 OpenCV를 설치해야 합니다.

관련 정보