ShSFX, a self-extracting maker

ShSFX �um shell script que facilita a cria�o de arquivos self-extracting para sistemas Unix usando bash e tar

Cuma?

Hoje funciona assim: voc�deseja distribuir um programa ou script, ou qualquer outra coisa que fez, mas, para facilitar a vida de quem for fazer o download, compacta o diret�io inteiro de seu programa em um arquivo tar.gz. Ao baixar seu programa o usu�io vai ter que:

  1. Descompact�lo: tar -xzvf seuprograma.tar.gz
  2. Entrar no diret�io: cd seuprograma
  3. Ler as intru�es de instala�o: less INSTALL
  4. Executar o comando de instala�o (que ele aprendeu no passo anterior): ./install
  5. Voltar para o diret�io pai: cd ..
  6. Faxinar: rm -rf seuprograma

Pode parecer simples se voc�tem experi�cia com shell, mas isso �bastante complicado para muitas pessoas. Voc�pode simplificar as coisas gerando um instalador para o seu sistema, de modo que os usu�ios v� baixar, por exemplo, um arquivo de nome seuprograma.sh, e v� execut�lo:

  1. Dar permiss� de escrita: chmod +x seuprograma.sh - muitas pessoas v� preferir fazer isso via interface gr�ica. No KDE, por exemplo, bot� direito, propriedades, permiss�s, marcar "�Execut�el".
  2. Executar: ./seuprograma.sh

Bem mais simples, n� �verdade?

Como instalo esse maravilhoso script?

Voc�pode baixar um auto-instalador que eu fiz usando o pr�rio ShSFX, ou baixar todo o c�igo-fonte do programa no diret�io de downloads.

O auto-instalador pergunta onde voc�quer instalar o script. O padr� �o diret�io /usr/local/bin que �onde ficam aqui em minha m�uina os meus scripts. Obviamente, para instalar algo nesse diret�io voc�precisa de permiss�s de superusu�io. No Kurumin: sudo ./installshsfx.sh. Em outras distros su, senha do superusu�io e depois ./installshsfx.sh.

E como uso esse treco?

Vamos construir um exemplo usando o fabuloso IEs 4 Linux do Sergio Lopes. Para instalar o IEs 4 Linux hoje voc�faz o download de um arquivo (enquanto escrevo a vers� atual se chama ies4linux-20050916.tar.gz) e seguir os passos:

  1. Descompactar: tar -xzvf ies4linux-20050916.tar.gz
  2. Entrar no diret�io: cd ies4linux
  3. Executar o script de instala�o: ./ies4linux
  4. Nesse ponto, entra em a�o o fabuloso script do Sergio, que faz todo o trabalho.
  5. Depois da instala�o, fazemos a faxina: cd .. seguido de rm -rf ies4linux

Fazemos ent� o download do arquivo do Sergio e criamos um script que execute os passos necess�ios para a instala�o. Nesse script n� inclu�os o comando para descompactar, o ShSFX vai cuidar disso para n�. Chamaremos esse script de ies4linux-20050916-code.sh:

#Entra no diret�io
cd ies4linux
#Executa a instala�o
./ies4linux
#Volta
cd ..
#Remove o diret�io do instalador
rm -rf ies4linux

Feito isso, executamos:

shsfx -xzf ies4linux-20050916.tar.gz ies4linux-20050916-code.sh ies4linux-20050916.sh

Isto vai gerar um arquivo de nome ies4linux-20050916.sh que, quando executado, vai descompactar-se (usando as op�es -xzf do tar), executar a instala�o e remover o lixo.

Posso ajudar?

N� precisa nem perguntar! Voc�pode melhorar o script e me mandar as altera�es, pode escrever uma mensagem de ajuda mais informativa para o script, e pode ajudar tamb� traduzindo esta p�ina para o ingl� ou outra l�gua que julgar til.

Cr�itos

Desenvolvido por Elcio Ferreira baseado na dica de Marcelo Criscuolo no Dicas-L