De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 03 de julho de 2018
Para distribuição de arquivos para sistemas GNU/Linux usamos com frequência os utilitários tar, zip ou rar. A distribuição em um determinado formato pressupõe que a pessoa que o receber possui o programa correspondente para fazer a expansão do arquivo.
Em determinadas situações, como quando queremos distribuir um software que seja auto-instalável, podemos usar um aplicativo que crie um arquivo e coloque junto um pequeno shell script para fazer a auto-extração dos arquivos e realizar a instalação dos arquivos extraídos.
Tudo isto pode ser feito por meio do aplicativo makeself, de autoria de Stéphane Peter.
O programa makeself suporta diversos algoritmos de compressão (gzip
,
bzip2
, pbzip2
, xa
, lzo
, lz4
, compress
) e formatos
de codificação ou criptografia (base64
, gpg
, ssl
). Os checksums
md5
e crc
também são suportados. Para exibir a lista completa de
opções, digite:
$ makeself --help
A sintaxe básica do programa makeself
é:
makeself.sh [opções] [diretório_a_compactar] [arquivo_auto-executável] [label] [script-inicializacao] [argumentos_opcionais_para_o_script]
O argumento label é a mensagem a ser impressa enquanto o arquivo auto-executável é expandido.
A opção arquivo_auto-executável é o script ou comando a ser executado após a extração bem sucedida do arquivo. Normalmente um script deste tipo irá copiar o conteúdo extraído para os diretórios apropriados. Este script deve fazer parte do diretório que será compactado de forma a que seja incluído no arquivo gerado.
Vejamos um exemplo simples:
$ sudo makeself /etc etc.sh "Teste makeself" /etc/etc.sh
[... diversas linhas suprimidas ...]
./debconf.conf
./upstart-xsessions
./magic
CRC: 2170093478
MD5: 804c62254b72707ce8e4dd50a89f73fe
Self-extractable archive "etc.sh" successfully created.
O arquivo instalador criado chama-se etc.sh
e contém os arquivos de
configuração do sistema (diretório /etc
). O arquivo etc.sh
é um
script bem simples, com o seguinte conteúdo:
#!/bin/bash
echo "Funcionou ...."
É claro, este é apenas um exemplo, você pode incluir qualquer ação que desejar neste script.
Vamos agora executar o arquivo etc.sh
:
$ ./etc.sh --target etc
Usage: /usr/bin/makeself [params] archive_dir file_name label [startup_script] [args]
params can be one or more of the following :
--version | -v : Print out Makeself version number and exit
[... várias linhas suprimidas ...]
Do not forget to give a fully qualified startup script name
(i.e. with a ./ prefix if inside the archive).
Creating directory etc
Verifying archive integrity... All good.
Uncompressing 100%
Funcionou ...
A diretiva --target
instrui o programa makeself
a criar o diretório
etc
dentro do diretório corrente e expandir o conteúdo do arquivo neste
mesmo diretório.
Para instalar o programa makeself
em sistemas Debian GNU/Linux e derivados, digite:
$ sudo apt-get install makeself
makeself: self-extracting archive
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários