|
|
Guia: Programando em Shell ScriptCarlos E. Morimoto 22/03/2005 Pacotes auto-instaláveis
Na verdade, estes pacotes são muito simples de criar. Tudo começa com um arquivo compactado, que contém os arquivos que serão instalados. No começo deste arquivo vai um shell script, que se encarrega de descompactar o arquivo, fazer perguntas e executar os comandos necessários para concluir a instalação. Lembre-se de que um shell script é sempre executado seqüencialmente. No final usamos o comando "exit", que faz com que o bash termine a execução do script, mesmo que exista mais texto adiante. Escrevemos então um script que ao ser executado remove o começo do arquivo (o próprio script), deixando apenas o arquivo compactado e, em seguida, o descompacta e executa os demais passos necessários. Comece reunindo os arquivos do programa, como se fosse criar um pacote .rpm ou .deb. Imagine, por exemplo, que o programa será instalado dentro da pasta "/usr/local/programa/" e colocará alguns arquivos de configuração dentro da pasta "/etc/programa". Naturalmente, o programa deve ser escrito ou compilado de forma a incluir as bibliotecas e executáveis necessários, para que possa ser executado em várias distribuições. Não adianta nada criar um pacote genérico se o programa só funciona no Debian Sarge, por exemplo. Você criaria então uma pasta, contendo a pasta "usr/local/programa" e a pasta "etc/programa", e colocaria dentro delas os arquivos, mantendo a estrutura que será copiada para o sistema. Compacte o conteúdo desta pasta usando o tar, como em: # tar -zcvf programa.tar.gz usr/ etc/ Agora temos um arquivo .tar.gz que, se descompactado no diretório raiz, vai copiar os arquivos do programa para os locais corretos. O próximo passo é incluir o script que fará a instalação.
linhas=6 Ao ser executado, o script precisa remover as 5 primeiras linhas do arquivo antes de descompactá-lo. Para isso, usamos o comando tail. Nosso script tem 5 linhas, por isso dizemos que o tail deve escrever a partir da sexta linha do arquivo (por isso o "linhas=6" e não 5). Normalmente, o tail escreveria tudo na tela, por isso usamos o pipe, que direciona a saída (as linhas válidas do arquivo compactado) para o tar. O parâmetro "-" faz com que ele descompacte o fluxo de dados que está recebendo através do pipe e o "-C /" faz com que o arquivo seja descompactado no diretório raiz. Em seguida temos o resto do script de instalação, com uma linha para criar um link para o executável do programa na pasta "/usr/bin/" e um comando para abrir uma mensagem de texto, avisando que a instalação foi concluída. Esta parte cabe a você melhorar ;). O passo final é juntar o script e o arquivo compactado, criando o arquivo de instalação, o que pode ser feito usando o cat: # cat script.sh programa.tar.gz > programa.sh |