Usando o i4l para criar instaladores de aplicativos para Linux

Publicado por Lucas em 08/11/2010

[ Hits: 14.743 ]

 


Usando o i4l para criar instaladores de aplicativos para Linux



Instalar aplicativos em sistemas GNU/Linux tem sido uma luta de longa data. Antes de 1993, para ter um sistema funcional, era necessário compilar tudo, desde o kernel, passando pelas ferramentas GNU, até as aplicações desejadas.

Hoje em dia isso é passado, e a instalação de programas no Linux se tornou algo até mesmo trivial. Tendo uma conexão com a internet, basta um simples comando, como "apt-get install <programa>" ou "yum install <programa>" para termos o aplicativo desejado. Se ele não estiver nos repositórios padrão da distro, provavelmente pode ser encontrado em algum outro repositório. Se nem isso for possível, sempre existe a opção de compilar por conta própria, que embora nos remeta a um passado onde essa era a única opção, agora só se torna necessário em casos extremos.

Contudo, ainda existe um caminho a galgar.

Usuários Windows estão muito acostumados com o paradigma NNF (next, next, finish) quando se trata de gerenciar aplicações. Além disso, estão acostumados a baixar por sua própria conta o instalador do aplicativo, que consiste em um único arquivo executável que contém todo o necessário para rodar o aplicativo.

No mundo GNU/Linux, as coisas são diferentes. O usuário não precisa abrir o navegador e nem entrar em site algum para baixar o instalador. O "instalador" vem dividido em partes, ou seja, um pacote principal e suas dependências. O comando de instalar o programa é o mesmo de baixar.

Essas diferenças, além de outras, como o fato dos arquivos de aplicativo ficarem espalhados pelo sistema afora, confunde usuários vindos do Windows ou do Mac. Esta diferença de paradigma não é um fator crucial para determinar o uso ou não de sistemas GNU/Linux, mas não deve ser desconsiderada.

Além disso, temos um problema clássico, a instalação de aplicativos em máquinas offline, que abordei em uma outra dica:
No intuito de criar um sistema de instalação de aplicativos onde todos os pacotes se encontrassem em um único arquivo, e onde fosse possível instalá-los em qualquer máquina offline, mesmo que esta jamais tivesse atualizado sua lista de pacotes do repositório, criei um projeto no sourceforge chamado i4l (installers for linux):
O i4l não é uma nova forma de gerenciador de pacotes. Ele é uma espécie de "wrapper" ao redor do apt. Um pacote criado com o i4l contém todos os pacotes deb necessários para instalar determinada aplicação em um sistema qualquer, mesmo em máquinas offline, onde a lista de pacotes do repositório nunca foi baixada.

O código é feito integralmente em shell script e a interface com o usuário é feita com o zenity, ou o xmessage caso o zenity não esteja disponível. Por enquanto, ele é compatível com as versões i386 dos seguintes sistemas: Ubuntu 10.10, 10.04, 9.10, 9.04, 8.04 e Debian Lenny.

É possível criar instaladores para qualquer aplicação disponível nos repositórios da distro. É possível também criar instaladores para uma distro alvo diferente daquela que você está usando para criar o instalador.

A seguir, darei as instruções de como utilizar o i4l para criar instaladores.

Primeiro, baixe o preparador do sistema (i4l-system-preparer.sh), disponível no sourceforge:
Em seguida, execute o arquivo e siga as instruções da tela. Ao fim do processo, o seu sistema estára pronto para criar instaladores.

Se você é do tipo cuidadoso, que não sai executando todo arquivo que baixa por aí, abra o arquivo no gedit ou outro editor de texto qualquer. Trata-se de um arquivo compactado com o bzip2 com um cabeçalho de shell-script, encarregado de extrair e executar o conteúdo do arquivo. Este arquivo compactado auto-extraível, assim como os instaladores do i4l, são todos gerados usando o makeself, disponível na seguinte página:
Se quiser somente extrair o conteúdo do pacote para ver o que tem dentro, execute-o no terminal com os parâmetros "--keep e --noexec". Isto criará uma pasta no diretório atual com todo o conteúdo do pacote. Isto também vale para os instaladores gerados com o i4l.

Após executado o preparador do sistema, se quiser, execute o comando i4l-set-target-system.sh para escolher o sistema alvo para o qual deseja criar instaladores.

Quando quiser criar um instalador, basta executar o comando:

# i4l-installer-creator.sh <nome-do-programa>

para gerar um instalador, que será colocado no seu diretório home.

Note que <nome-do-programa> é o nome de qualquer pacote disponível nos repositórios de sua distro. Exemplos:

# i4l-installer-creator.sh gimp
# i4l-installer-creator.sh chromium-browser
# i4l-installer-creator.sh broffice.org


Conclusão

Meu objetivo maior, ao criar o i4l, foi desenvolver uma maneira fácil de instalar programas em máquinas offline. Além disso, ele se mostra útil para fazer backup de aplicativos, para aqueles que tem conexão lenta e não querem baixar um programa mais do que uma única vez.

Existe também a possibilidade de usar o aptoncd para fazer backup de pacotes deb, contudo quando se trata de fazer backup de um único aplicativo, e não de uma coleção deles, o uso do i4l se mostra mais simples. De fato, inicialmente o i4l foi inspirado pelo aptoncd.

Agradeço muito tanto àqueles que criaram o aptoncd, e aos criadores do makeself, que uso para criar os pacotes auto-extraíveis.

O i4l ainda está em fase inicial, mas já é capaz de fazer aquilo que ele propõe: Criar instaladores de aplicativos para Linux.

Ficaria extremamente grato de receber críticas e sugestões daqueles que o utilizarem.

Pretendo, futuramente, aumentar o escopo do i4l para abranger sistemas baseados em pacotes rpm.

No mesmo projeto do sourceforge, hospedei uma série de instaladores de aplicativos, para Ubuntu 10.10 e 10.04. Quem se sentir a vontade pode testa-los e me dizer o que achou.

Mandem as críticas e sugestões para:

gnumaru<arroba>users<ponto>sourceforge<ponto>net

Troquem o <arroba> por "@" e o <ponto> por ".". Procedimento padrão anti-spam.

Ficarei feliz se puder nortear o desenvolvimento do i4l com base nas sugestões dos usuários.

Outras dicas deste autor

Instalando o gnome-app-install no Ubuntu 10.04 Lucid Lynx

Bug das setas direcionais do jogo Egoboo [Resolvido]

Instalação de programas em máquinas offline

Leitura recomendada

Referência rápida de diretórios

Script pessoal para uso em firmware de access point para conexão automática de PPPOE

Zenwalk vs Slackware

Arch Linux - Limpeza de pacotes

Fedora 17 + MATE = Combinação Perfeita

  

Comentários
[1] Comentário enviado por albfneto em 08/11/2010 - 23:18h

vou provar isso em sabayon.

[2] Comentário enviado por mrdecastro em 09/11/2010 - 11:05h

Excelente! Tenho esse problema com máquinas offline e isso com certeza me ajudará. Alem de ser mais uma ferramente para "evangelizar" meu amigos. Obrigado!

[3] Comentário enviado por madsonketson em 05/02/2019 - 10:07h

otimo!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts