Como converter o instalador .run em instalador .deb?

Como converter o instalador .run em instalador .deb?

Estou executando o Ubuntu 14.04.

Tenho muitas bibliotecas de sistemas de terceiros que uso para projetos, mas gerenciar a instalação da biblioteca é difícil. Algumas bibliotecas são arquivos .deb, algumas são construídas a partir do código-fonte (a partir do qual eu crio um .deb) e algumas são arquivos .run.

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

Tentei usar checkinstall para executar o arquivo .deb (especificamente os drivers de câmera UEye encontradosaqui), esperando que checkinstall capturasse as modificações em meu sistema de arquivos, mas infelizmente isso foi um desastre.

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

Responder1

Não existe um método simples ou universal para fazer isso. A primeira parte de um .runarquivo comum (vou usar o arquivo de instalação do driver ATI como referência) é um script, seguido por um fluxo de dados compactados que é imediatamente armazenado no sistema de arquivos. Para convertê-lo para um arquivo deb, você deve descompactar o stream em um diretório, criar o debian/diretório, no seu rulesarquivo você deve editá-lo então dhmake basta pegar a estrutura do diretório e copiar os arquivos onde eles deveriam estar, já que você não tem a Makefileou equivalente que usa o installscript.

Eu recomendo fortemente apenas pedir ao distribuidor do software para criar umPacote Debianjá que a maioria desses arquivos de execução nem sãoCompatível com DFSG.

Responder2

O que acabei fazendo foi:

  1. Crie um .deb personalizado que contenha o arquivo .run
  2. "Instale" o arquivo .run em /tmp
  3. Use postinstpara executar o arquivo .run (e exclua depois)
  4. Na verdade, esse arquivo .run específico fornece seu próprio script de desinstalação que não precisa do arquivo .run original. Então eu uso postrmpara executar esse script.

Tudo funciona muito bem. Sem queixas e muito simples.

informação relacionada