Como construir lista de dependências para o pacote deb

0

Eu quero colocar meu aplicativo qt no deb. Durante as dependências de investigação com ldd i obteve ~ 50 bibliotecas. Lista completa abaixo:

libgstreamer-plugins-base0.10-0,
libgstreamer0.10-0,
libglib2.0-0,
libasound2,
liboss4-salsa-asound2,
libssl1.0.0,
libx11-xcb1,
libxi6,
libxcb-render-util0,
libsm6,
libice6
libxcb1,
libxcb-glx0,
libxcb-render0,
libxcb-image0,
libxcb-icccm4,
libxcb-sync1,
libxcb-xfixes0,
libxcb-shm0,
libxcb-randr0,
libxcb-shape0,
libxcb-keysyms1,
libxcb-xkb1,
libxcb-dri2-0,
libxcb-present0,
libfontconfig1,
libfreetype6,
libxrender1,
libx11-6,
libjpeg-turbo8,
libpng12-0,
zlib1g,
libglib2.0-0,
libgl1-mesa-glx,
libstdc++6,
libgcc1,
libc6,
liborc-0.4-0,
libglib2.0-0,
libxml2,
libffi6,
libxext6,
libuuid1,
libxau6,
libxdmcp6,
libxcb-util0,
libexpat1,
libpcre3,
libglapi-mesa,
libxdamage1,
libxfixes3,
libxshmfence1,
libxxf86vm1,
libdrm2,
liblzma5

Eu quero minimizar essa lista, com base no pressuposto de que há dependência entre alguns lib e uns dos outros nesta lista.

Minhas perguntas:

  • Qual ferramenta pode me ajudar a minimizar?
  • Quais dependências da lista acima estão pré-instaladas para o Ubuntu?
por CAMOBAP 03.08.2014 / 13:07

1 resposta

2
% bl0ck_qu0te%

Você não deve fazer isso. A lista de dependências deve incluir cada biblioteca da qual o seu software depende diretamente. A razão para isso é que seu binário requer que a biblioteca, e exatamente essa biblioteca, seja vinculada corretamente quando executada. Suponha que você tente otimizar isso:

  • Seu programa depende de libX e libY
  • libY depende da libX
  • Você tenta minimizar isso especificando uma dependência para apenas libY

Agora, o que acontece se o autor ou mantenedor do pacote de libY alterar seu código para não depender mais da libX? Seu pacote vai quebrar. Isso quebra porque você fez uma suposição falsa - que liby sempre dependerá da libX. Essa suposição não é válida - as dependências dos pacotes podem mudar ao longo do tempo. Então, se o seu programa precisa de libX, você precisa especificar isso.

A boa notícia é que a lista de bibliotecas compartilhadas pode ser gerada automaticamente usando dpkg-shlibdeps :

link

% bl0ck_qu0te%     
por bain 03.08.2014 / 17:23