Baixar: instalador do mki / fontes
Você já deve ter visto ou usado um instalador com extensão *.run em Linux. Basta executá-lo no terminal que a mágica acontece: ele é extraído e executa um instalador.
O que talvez vc não saiba é que esse arquivo é um auto-extraível, um script shell com um arquivo compactado anexado. Os comandos do script shell presentes no arquivo separa o anexo e o extrai, após isso chama o script shell instalador, ou apenas extrai se for o caso.
Fascinado por essa técnica, após pesquisar muito, criei um script personalizado que gera automaticamente um arquivo *.run auto-extraível chamado mki (make installer=crie instalador). Com ele será possível criar instaladores para seus projetos, scripts ou até mesmo uma imagem de fundo, ou ainda fazer backups. Compatível somente com linux e derivados.
Basta executá-lo em terminal, veja os comandos:
mki -x pasta arquivo.run (compacta ‘pasta’ e cria um arquivo auto-extraível arquivo.run)
mki -i pasta instalador.run (cria um instalador auto-extraível, que chama “instalar.sh” após a extração);
mki -o PastaAlvo Nome.run ./inicio.sh (cria instalador que chama “./inicio.sh”, assim vc pode personalizar qual scritp será executado após a extração)
mki -h (mostra algumas informações sobre o programa)
O instalador mki-0.4.run foi criado usando o próprio script mki que instala ele mesmo em seu sistema.
Compatível com qualquer distribuição que possua interpretador bash
Lembrando que o nome de seu instalador não precisa ter a extensão *.run, veja abaixo alguns nomes possíveis:
exemplo.run exemplo.bin exemplo (sem extensão)
Baixe os fontes do instalador mki-0.4 e veja os scripts conf.sh, instalar.sh, lib.sh e licenca.txt que possuem funções prontas para um instalador, modifique e faça seus próprios instaladores.
Baixar: instalador do mki / fontes
(Após baixar os arquivos acima execute no terminal: ./arquivo.run ou bash arquivo.run, substitua arquivo pelo nome do arquivo baixado)
Exemplo passo a passo:
Após ter baixado mki e instalado em sua distro, vamos criar um instalador passo a passo.
Pegue uma biblioteca prisma, qualquer uma, no meu caso vou pegar a “pzip.so” para Linux 32bits.
(Se necessário dê permissão: chmod +x pzip.so);
1 – Crio uma pasta com o nome do instalador: pzip
2 – Dentro da pasta recém-criada pzip coloco a biblioteca pzip.so
3 – Ainda dentro da pasta pzip crio um arquivo instalar.sh com os seguintes comandos:
1 2 3 4 5 6 7 8 |
#instalador da lib pzip - este é um comentário echo "--------------------------------------------------------------------------" echo "Instalar biblioteca pzip - [Enter para sim / feche a janela para cancelar]" echo "--------------------------------------------------------------------------" read g; sudo cp pzip.so /usr/local/lib/prisma/1.0/clib/ #local das bibliotecas Prisma em C echo "Processo terminado - Enter para sair..." read g; |
4 – Agora só usar o mki para compactar a pasta pzip criada acima, com todos os seus itens:
mki -i pzip pzip.run
Caso queira iniciar um script com outro nome diferente de instalar.sh use esse comando abaixo:
mki -o pzip pzip.run ./nome_script.sh (Assim, nome_script.sh será executado após a extração);
Pronto! Viu como foi fácil.
Criando um arquivo auto-extraível sem instalador:
1 – Apenas use o mki passando o -x como parâmetro, a pasta que você quer comprimir e por último o nome do arquivo run a ser gerado. Qualquer pasta pode ser comprimida pelo mki, desde que se tenha privilégios necessários.
Use:
mki -x pzip pzip.extract (aqui apenas irá extrair a nossa biblioteca e não irá chamar o arquivo instalar.sh, útil quando se quer deixar o usuário escolher se vai instalar ou apenas extrair. Bastando executar instalar.sh manualmente no terminal após a extração.)
Obs. eu criei a extensão *.extract poderia ser qualquer outra: *.run, *.exec, *.mki ou sem extensão.
Assim teremos que digitar no terminal: ./pzip.extract
Se não funcionar, talvez seja porque está sem permissão para executar. Basta dar a permissão usando chmod +x arquivo.run, ou apenas use bash pzip.extract (dentro do local onde está o arquivo).
Obrigado pela visita, até mais!