Como adicionar dependências de bibliotecas compartilhadas ao debian / control?

1

Eu estou tentando fazer um pacote debian a partir de um aplicativo Qt baseado no OpenCV.

O que eu fiz até agora:

  1. eu configurei um Ubuntu em um Virtualbox
  2. Eu instalei o software necessário para compilar e executar o aplicativo (itens relacionados ao Qt, ffmpeg , codecs, OpenCV etc.)
  3. Eu compilei e executei a aplicação com sucesso
  4. criei uma chave GPG
  5. Com o dh_make, criei o diretório debian no diretório do meu projeto
  6. Eu adicionei os pacotes ao debian / control- > Build Depende do que obtive executando dpkg-depcheck -d qmake
  7. eu adicionei ao Depends também o que eu obtive com o dpkg-depcheck -d SampleApp
  8. editei os arquivos de direitos autorais e changelog
  9. Eu tentei executar dpkg-buildpackage -b

Neste ponto, recebi a mensagem de erro:

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

Todos esses arquivos podem ser encontrados em /usr/local/lib/ . Eu li isto: link mas não consegui encontrar a solução. Como eu poderia adicionar essas dependências ao pacote?

Editar:

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
    
por John Williams 04.12.2016 / 04:03

1 resposta

2

Se a biblioteca compartilhada da qual você depende estiver instalada em /usr/local/lib em vez de /usr/lib (ou similar), suspeito que não faça parte de nenhum pacote gerenciado pelo gerenciador de pacotes dpkg . dh_shlibdeps quer construir uma lista completa de todas as coisas que seu novo pacote terá que depender, mas neste caso, uma dessas coisas parece existir fora de qualquer pacote, então não pode ser listado.

Você deve instalar o OpenCV a partir de um pacote Debian (mais seu pacote -dev correspondente, para que você possa construir contra ele), não de uma instalação local.

    
por 04.12.2016 / 04:57