Como converter o instalador .run para o instalador .deb?

3

Estou executando o Ubuntu 14.04.

Eu tenho muitas bibliotecas de sistemas de terceiros que uso para projetos, mas é difícil gerenciar a instalação de bibliotecas. Algumas bibliotecas são arquivos .deb, algumas são construídas a partir da fonte (da qual eu, então, criei um .deb), e algumas são arquivos .run.

Meu objetivo é ter meu próprio repositório pessoal que hospeda essas bibliotecas de sistema de terceiros na forma de arquivos .deb. Meu problema é converter arquivos .run em arquivos .deb.

Eu tentei usar o checkinstall para executar o arquivo .deb (especificamente os drivers da câmera UEye encontrados here ), esperando que o checkinstall capture as modificações no meu sistema de arquivos, mas infelizmente isso foi um desastre.

Existe alguma maneira limpa de transformar arquivos .run em arquivos .deb?

    
por trianta2 23.06.2014 / 20:08

2 respostas

2

Não existe um método simples ou universal para fazer isso. A primeira parte de um arquivo comum .run (vou usar o arquivo de instalação do driver da ATI como referência) é um script, seguido por um fluxo de dados compactados que são imediatamente armazenados no sistema de arquivos. Para convertê-lo em um arquivo deb, você deve descompactar o stream em um diretório, criar o diretório debian/ , no seu arquivo rules você deve editá-lo para que o dhmake pegue a estrutura do diretório e copie os arquivos onde eles deveriam estar, desde que você não tenha um Makefile ou equivalente que use o script install .

Eu recomendo strongmente apenas pedir ao distribuidor do software para criar um pacote Debian já que a maioria desses arquivos executados não são nem compatíveis com DFSG .

    
por 23.06.2014 / 20:46
1

O que acabei fazendo foi:

  1. Crie um .deb personalizado que contenha o arquivo .run
  2. "Instale" o arquivo .run em / tmp
  3. Use postinst para executar o arquivo .run (e excluir depois)
  4. Esse arquivo .run em particular fornece seu próprio script de desinstalação que não precisa do arquivo .run original. Então eu uso postrm para executar esse script.

Tudo funciona muito bem. Sem queixas e muito simples.

    
por 23.06.2014 / 21:52