Usando o i4l para criar instaladores de aplicativos para Linux

Publicado por Lucas em 08/11/2010

[ Hits: 12.101 ]

 


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

Instalação de programas em máquinas offline

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

Bug das setas direcionais do jogo Egoboo [Resolvido]

Leitura recomendada

Criando senhas seguras

CDR em Postgres no Elastix 2.4.0

Xterm colorido

Monitorar Elastix via SNMP

ls - Comando de listagem

  

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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts