Como removo dependências de um instalador deb para um sistema isolado?

0

Eu criei um pacote deb para um aplicativo criado no Qt. Eu incluí todas as bibliotecas das quais o aplicativo depende, para serem instaladas em uma pasta ao lado do próprio aplicativo:

/usr/share/MyCompany/MyProduct/executable
/usr/share/MyCompany/MyProduct/Frameworks

Em seguida, exportado LD_LIBRARY_PATH apontando para o diretório Frameworks .

Tudo perfeito ... Até que tive que adicionar o QT Assistant, que requer bibliotecas adicionais.

Após verificar as dependências do Qt Assistant, adicionei todas as bibliotecas necessárias, incluindo libQtHelp.so.4 e libQtWebKit.so.4 , no mesmo diretório.

Meu deb é muito simples, eu crio a estrutura desejada, em seguida, defino a "instalação" para copiar meus arquivos para os diretórios de destino.

blah_1/* /usr/share/MyCompany/MyProduct/

Para criar o pacote, eu crio o tar então

dh_make --copyright gpl -f ../blah-1.0.tar.gz 
dpkg-buildpackage -rfakeroot [email protected]

Ao executar o instalador em um sistema limpo (sem Qt), estou recebendo erros de dependência:

me:~$ sudo dpkg -i /path/blah_1.0-1_i386.deb 

Selecting previously unselected package blah.
(Reading database ... 141841 files and directories currently installed.)
Unpacking blah (from .../blah_1.0-1_i386.deb) ...
dpkg: dependency problems prevent configuration of blah:
 blah depends on libqt4-help (>= 4:4.8.0); however:
  Package libqt4-help is not installed.
 blah depends on libqtwebkit4 (>= 2.2~2011week36); however:
  Package libqtwebkit4 is not installed.
dpkg: error processing blah (--install):
 dependency problems - leaving unconfigured
Processing triggers for shared-mime-info ...
Processing triggers for desktop-file-utils ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for gnome-menus ...
Errors were encountered while processing:
 blah

Infelizmente, o sistema que estou instalando não tem (e não terá) acesso à Internet. Como posso fornecer os pacotes necessários, no mesmo instalador deb?

Ou, como posso desabilitar a verificação de dependências, já que estou fornecendo as bibliotecas necessárias?

(Ubuntu 12.04 se isso for relevante)

Atualização: eu corri

sudo dpkg -i --ignore-depends=libqt4-help,libqtwebkit4 /path/blah_1.0-1_i386.deb 

O programa foi instalado corretamente e funcionou perfeitamente.

Dentro do pacote, no /DEBIAN/control , vejo as dependências indesejadas listadas.

Depois de chamar o dh_make, não tive dependências no arquivo de controle.

O dpkg-buildpackage deve ter colocado as dependências após a verificação (provavelmente para assistente).

Posso removê-los de alguma forma? Posso colocar uma bandeira em algum lugar para não incluir dependências?

Ou ... ainda .... posso adicionar na minha embalagem os pacotes deb e existe um comando que eu possa dar para pré-instalar como parte da instalação do pacote?

Se não houver solução .... suponho que posso fornecer um script para executar o comando dpkg como acima, com ignore-depends, mas o pacote não pode ser instalado a partir do Centro de Software ...

    
por Thalia 13.11.2014 / 16:33

1 resposta

0

De acordo com man dpkg-source :

-Dfield=value
      Override or add an output control file field.

E de man dpkg-buildpackage :

--source-option=opt
      Pass option opt to dpkg-source.

Então, talvez você possa substituir o campo Depends assim:

dpkg-buildpackage --source-option='-DDepends=...' ...
    
por muru 13.11.2014 / 17:37