Como fazer o pacote de instalação para muitas distribuições Linux

4

Eu faço suporte para aplicativos de desktop multiplataforma baseados em Qt para Linux distribuições. Atualmente eu apoio a construção de pacotes .deb de instalação que podem ser usados em sistemas Ubuntu.

Eu construo 2 pacotes de instalação para cada nova versão de nosso aplicativo: um pacote para sistemas amd64 e outro - para i386 (que, por alguns motivos, não funciona em sistemas amd64).

Para fazer isso, tenho que compilar meu aplicativo e compilar o pacote em máquinas separadas. Também vou começar a suportar o aplicativo em sistemas de braço que, como entendo, também precisa de um tipo de pacote separado. Como posso lidar com isso?

Além disso, nem todas as distribuições Linux podem usar pacotes .deb para instalação de software. Por exemplo, o Fedora. Nesse caso, preciso construir o pacote de instalação .rpm. E assim por diante ... Recentemente eu usei o alien para converter meu pacote .deb para .rpm e instalá-lo no Fedora. Consegui instalá-lo, mas encontrei alguns pequenos problemas com o aplicativo instalado.

Então eu preciso de alguma maneira universal para fazer o arquivo de instalação para o meu aplicativo que pode ser usado em quase todas as distribuições do Linux (ou na maioria delas).

Alguém pode me dar algum conselho sobre isso?

Como posso construir um pacote de instalação para diferentes arquiteturas?    Qual é a maneira de tornar meu pacote executável em diferentes distribuições Linux?

Gostaria de receber ajuda ou link útil relacionado ao meu problema.

    
por Vasyl 10.06.2014 / 12:54

1 resposta

3

fyi. O openSUSE Build Service é excelente para pacotes sem dependências complicadas ; Eu tenho usado para entregar qtop para distribuições múltiplas, com bom sucesso: link link Você pode produzir todos os pacotes por meio de: um Makefile gerador de tarball, depois chutar o OBS para o resto.

O problema fica mais complicado se você tiver dependências com nomes variados em distros ou diferentes esquemas de empacotamento (o Boost vem à mente, o que às vezes é dividido em partes). Se você tem essa situação, fornecer uma solução universal é mais complicado. AFAIK, no caso posterior você precisará fornecer mais habilidades de programação, para automatizar o acima.

    
por 10.06.2014 / 14:03